如何更改指令的范围值?我试过这样的方式:
在模板中:
<h1>{{abcd}}</h1>
<example-directive abcd="abcd"></example-directive>
指令
..
scope: {
abcd: '='
},
link: function($scope){
$scope.abcd = "change it pleeease";
}
....
但结果我没有回来。所以&#39; h1&#39;标签是空的.... 有谁知道为什么?
指令:
(function(){
'use strict';
var standingsDirective = function(api, $http){
return {
restrict: 'E',
scope : {
sid: '=',
loadingstatus: '='
},
templateUrl: "teams/views/standings.html",
link: function(scope){
scope.loadingstatus = "loading";
$http.get(api+'/getsomething'+scope.id).success(function(result){
scope.data = result;
if(scope.data && scope.data.length > 0){
scope.loadingstatus = "loaded";
}else{
scope.loadingstatus = "notloaded";
}
}).error(function(){
scope.loadingstatus = "notloaded";
});
}
};
};
var teamsModule = angular.module('app.teams');
teamsModule.directive('standings', ['api', '$http', standingsDirective]);
}());
模板文件:
...
<a ng-show="loadingstatus == 'loaded'" ng-click="subview='standing'" class="activeLink">standings - {{loadingstatus}}</a>
...
<standings sid="sid" loadingstatus="loadingstatus" ng-show="subview=='standing'"></standings>
...
答案 0 :(得分:3)
回答我的问题:
首先,非常感谢&#34; Fedaykin&#34;帮我解决他的评论。他是那个指出它应该工作的人,所以问题应该在我的代码的另一部分。
计算出ng-if属性阻止了我的指令的执行。 以下是html代码的样子:
<a ng-show="loadingstatus == 'loaded'" ng-click="subview='standing'" class="activeLink">standings - {{loadingstatus}}</a>
<div ng-if="subview=='standing'">
...
<standings sid="sid" loadingstatus="loadingstatus" ng-show=" subview=='standing'"> </standings>
....
</div>
因此造成了这种奇怪的行为。 我希望这篇文章能帮助其他人解决问题,如果他们有类似问题的话。
答案 1 :(得分:0)
嗯,它应该有效,我不知道哪些是错的,也许如果你分享更多的代码,我们就可以找出问题。
这是一个非常简单的工作示例: http://plnkr.co/edit/eXhog9wsslyuHEZO2dOY
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
});
app.directive('exampleDirective',[function(){
return{
restrict: 'E',
scope: {
name: '='
},
link: function($scope){
$scope.name = "change it pleeease";
}
}
}]);
以下是关于在控制器和指令之间共享数据的更详细示例: