在angularjs控制器中添加jquery

bxpogfeg  于 2022-10-31  发布在  Angular
关注(0)|答案(1)|浏览(185)

我有HTML喜欢:

<select id="example">
<option value="1">Short</option>
<option value="2">Oh dear, this option has really long text :(</option>

我想把下面的jquery添加到一个Angular 控制器中,我该怎么做呢?

var maxLength = 15;
$('#example > option').text(function(i, text) {
    if (text.length > maxLength) {
        return text.substr(0, maxLength) + '...';
    }
});
tf7tbtn2

tf7tbtn21#

你真的不应该这样做,这违反了AngularJS的工作方式,并将挫败任何其他AngularJS开发人员谁看看你的代码。
而是改为将选项列表声明为控制器中作用域的属性,并修改其中的文本以将其截断为所需的长度。
例如:
标记:

<select id="example" ng-options="option.value as option.text for option in options">

控制器代码:

var maxLength = 15;
$scope.options = ['Short', 'Oh dear, this option has really long text :('].map(function (text, i) {
  return {
    value: i + 1,
    text: text.length <= maxLength ? text : text.substring(0, maxLength) + '...'
  };
});

相关问题