我是 Angular JS 的新手。我想做的是使用 Directive 创建一个可重用的组件。到目前为止,它只有一个下拉菜单。在执行 Add 时,下拉菜单会填充 permissionValues 数组中的值,并与具有所选值的空模型绑定。但是,当我尝试编辑下拉菜单时,并没有使用现有模型值进行初始化。指令代码。
directive('userPermissions', function() {
return {
restrict: 'E',
template:'<div><select ng-model="ngModel" ng-options="abc [optValue] as abc [optDescription] for abc in array"></select>{{tab}}</div>',
replace: true,
transclude: true,
scope:{ ngModel: '=', tab:'='},
link: function (scope, element, attrs) {
scope.optValue = attrs.optValue;
scope.optDescription = attrs.optDescription;
scope.$watch(attrs.array, function(newVal, oldVal){
if(newVal != oldVal){
scope.array = newVal;
}
});
}
};
});
HTML 代码
<user-permissions tab="tab"
ng-model="newUser.canCheckout1"
array="permissionValues"
opt-value="value"
opt-description="label"></user-permissions>
在主控制器中
$scope.permissionValues = [{label:'Standard', value:'true'},{label:'Restricted', value:'false'}];
如您所见,我添加了“标签”进行测试。我正在更改加载函数选项卡的值,当我单击编辑时会调用该函数。正在打印选项卡的新值,但下拉菜单未初始化。