gpt4 book ai didi

javascript - Controller 范围之外的自定义选择指令 - 生成空选项

转载 作者:行者123 更新时间:2023-12-02 14:51:16 25 4
gpt4 key购买 nike

这是我正在做的事情的总体思路:

<html ng-app="myapp">
<head>...</head>

<body>

<select class="form-control" ng-model="change_group" change-group>
<!-- options loaded in from Symfony/twig -->
<option value='0'>lala</option>
<option value='1'>bla</option>
</select>

<div ng-view></div>

</body>
</html>

当所有加载时,该指令似乎起作用,并且每当选择更改时我都可以让它触发;但它正在创建一个空选项,而且我似乎无法让它预先选择现有选项,而不是生成一个空选项并将其设为默认选项。

myapp.directive('changeGroup', function() {
return {
restrict: 'A',
require: "ngModel",
scope: { },
controller: function($scope) {
$scope.change_group = 0;
},
link: function(scope, element, attrs, ngModel) {
ngModel.$viewChangeListeners.push(function() {
console.log('changed');
});
}
};
});

当我加载页面时,所需的选项 (0) 会闪烁一瞬间,然后返回到空选项。

这就是在 Angular 插入空选项后选择的样子:

<select class="form-control ng-pristine ng-valid ng-isolate-scope ng-touched" ng-model="change_group" change-group="">
<option value="? undefined:undefined ?"></option>
<option value="0">Public</option>
<option value="1">xil3</option>
</select>

最佳答案

初始化为字符串;不是一个数字。

也不使用范围;不隔离范围。

angular.module("app",[]).directive('changeGroup', function() {
return {
restrict: 'A',
require: "ngModel",
//Do not use isolate scope
//scope: {},
controller: function($scope,$element) {
//Initialize to string
$scope.change_group = '1';
//Not to a number
//$scope.change_group = 1;
},
link: function(scope, element, attrs, ngModel) {
ngModel.$viewChangeListeners.push(function() {
console.log('changed');
});
}
};
});

DEMO on JSFiddle .

关于javascript - Controller 范围之外的自定义选择指令 - 生成空选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36167233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com