我的Angular代码中有指令。它具有与元素属性绑定的孤立范围;改变模型控制器; postlink函数旨在将单击回调绑定到模板中的元素;带有ng-switch的模板。
scope: {
payload: '='
},
controller: function($scope){
$scope.havePayload = $scope.payload;
},
link: {
post: function(scope, elem, attrs){
elem.children(".with-payload").css( "background-color", "red" );
}
},
restrict: 'A',
replace: true,
template: '<div ng-switch on="havePayload"> \
<div ng-switch-when="true" class="with-payload"></div> \
<div ng-switch-when="false" class="without-payload"></div> \
</div>'
问题在于,当postlink开始时,ng-switch仍然不知道任何关于模型的内容,并且不包含在postlink中我需要的DOM元素中。这很奇怪,因为只有当模板与模型达成一致时才应执行postlink
这是jsfiddle example。我知道,看起来很奇怪。只是我可怜的幻想:)
的更新
(http://jsfiddle.net/NXQ8G/3/)
似乎不起作用。