我有以下问题:
在我的控制器中,我有类似的东西:
$scope.current = 0;
我有一些看起来像这样的指示:
angular.module('myAPP')
.directive('post', function() {
return {
restrict: 'EA',
replace: true,
scope: {
post: '=',
index: '='
},
link: function(scope) {
//update the $scope.current here
},
templateUrl: 'components/blog/post.html'
};
});
有人可以解释我最好的方法吗,它可以更新链接功能中的$ scope吗?
谢谢!
答案 0 :(得分:6)
您的指令有一个孤立scope
。
要从指令更改current
,必须将其与指令范围变量绑定,如此
喜欢这个
<强> HTML 强>
<post index="current"></post>
<强> JS 强>
link: function(scope) {
scope.index=2;
},
答案 1 :(得分:1)
您需要使用operator precedence。它应该是这样的:
$arr = array(array((0)=>('Afghanistan'),(1)=>(93),(2)=>(0.2),(3)=>(2015-06-09)),
array((0)=>('Afghanistan Cdma Afghan Telecom'),(1)=>(9375),(2)=>(0.22),(3)=>(2015-03-31)),
array((0)=>('Afghanistan mobile'),(1)=>(937),(2)=>(0.158),(3)=>(2015-03-31)));
$search = '93';
foreach($arr as $value):
if(in_array($search, $value)):
echo "<td>".$value[0]."</td>";
echo "<td>".$value[1]."</td>";
echo "<td>".$value[2]."</td>";
echo "<td>".$value[3]."</td>";
endif;
endforeach;
在您的控制器中,您将向您的指令发送通知事件:
angular.module('myAPP')
.directive('post', function() {
return {
restrict: 'EA',
replace: true,
scope: {
post: '=',
index: '='
},
link: function(scope) {
$scope.on('my-event', function(value){
$scope.current = value;
});
//update the $scope.current here
},
templateUrl: 'components/play/questions/simple-question.html'
};
});
如果您的指令位于控制器之外,则需要使用$scope.emit('my-event', $scope.current);
。