【发布时间】:2015-08-25 13:34:01
【问题描述】:
我在 Angular js 中遇到了一种情况。
我有一个主下拉菜单,其中的项目为“子列表”和“子下拉菜单”。我已经使用指令加载了子列表和子下拉列表。
现在我的场景很简单,在从下拉列表中选择子列表时,我想加载“列表指令”,在从主下拉列表中选择子下拉列表时,我希望结果为“下拉列表-指令'
它应该是动态发生的。
我的 Seeddata.js:
var dirType = [
{ text: 'List', value: 0 },
{ text: 'Table', value: 1 },
{ text: 'Dropdown', value: 2 }
];
我的指令
var directiveModule = angular.module('directiveModule', ['serviceModule']);
directiveModule.directive('payerListDirective', function (payerService) {
return {
restrict :"AC",
template: "<ul><li ng-repeat='payer in dirType'>{{payer.text}}</li></ul>",
link: function ($scope) {
$scope.payersDir = payerService.getPayers();
}
};
});
directiveModule.directive('payerDropdownDirective', function (payerService)
{
return {
restrict: "AC",
template: "<select ng-model='x' ng-options='payer.value as payer.text for payer in dirType' ></select>",
link: function ($scope) {
$scope.payersDir = payerService.getPayers();
}
};
});
注意:payerService 是我从 Service Module 注入来加载数据的工厂
我的观点
<div ng-controller = "dircntrl" >
<select ng-model = "dirdummy">
<option ng-repeat = "dir in dirType" value = "{{dir.value}}" >{{dir.text}} </option>
</select>
<div parent-directive></div> // This is the place where I need solution
我的控制器
cntrlModule.controller('dircntrl', function ($scope) {
$scope.dirType = dirType;
$scope.$watch('dirdummy',function(){
// Want the solution here
})
});
我尝试在控制器中使用 $watch 来加载结果。但我不知道执行此操作的确切方法。
【问题讨论】:
标签: javascript angularjs angularjs-directive controller