我得到一些意外的行为,这是我第一次进入指令。角度组件指令和templateurl,对外部控制器的不同响应
我正在使用带有templateurl和隔离控制器的指令。我期待在templateurl中的dom基于dom(在这种情况下是select元素)和指令控制器之间的2路绑定作出反应。我在绑定属性上放置了一个'$ watch',该属性在第一次加载指令时触发。但是,如果用户选择不同的选项,它不会触发。这不是我迄今为止使用控制器的经验所能达到的正常功能。
我的指令如下:两次
(function() {
'use strict';
var projMgrApp = angular.module('projMgrApp')
.directive('elementStructure', function() {
var structureController = ['$location', '$scope', '$window', '_', '$http', 'isAdmin', 'pmElement',
'GetProject', 'Enums', 'Users',
function ($location, $scope, $window, _, $http, isAdmin, pmElement, GetProject, Enums, Users) {
/* Ive removed most code for simplification
*/
$scope.NewElementType = null;
$scope.$watch('NewElementType', function (val) { alert(val); })
}];
return {
restrict: 'EA',
scope: {
elementType: '@',
projectId: '@',
structureTemplate: '@'
},
controller: structureController,
templateUrl: '/partials/structure.html',
};
});
})();
里面我的模板网址我有这样的选择,其即时通讯期待调用观察者..
<select class="form-control"
ng-options="d for d in ProductionCategoryOptions" ng-model="NewElementType"></select>
林加载该指令为单独的组件(而不是打算共享任何值)
<fieldset class="tab-pane fade in" id="ProductionStructure">
<element-structure element-type="Production" project-id={{Project.Id}}" structure-template={{Project.ProjectSettings.SceneStructureTemplate}}"></element-structure>
</fieldset>
<fieldset class="tab-pane fade in" id="AssetStructure">
<element-structure element-type="Asset" project-id="{{Project.Id}}"></element-structure>
</fieldset>