我有这段代码:
<ul>
<li ng-repeat="message in messages">
<button ng-click="send()">Send</button>
</li>
</ul>
$scope.send = function(){
// not working (message undefined)
alert($scope.message.text);
// working
alert($scope.messages[0].text);
};
我不明白为什么:
alert($scope.message.text);
不起作用。我认为ng-repeat正在创造一个新的范围。
答案 0 :(得分:13)
ng-repeat
创建新范围的确如此。但是您无法通过在控制器中执行$ scope来访问该范围。相反,你可以这样做:
<button ng-click="send(message)">Send</button>
在你的JS中:
$scope.send = function(message){
alert(message.text);
};
答案 1 :(得分:-1)
该消息仅访问作为视图侧(index.html)的本地端。 Dosn,t访问控制器端。但是消息是传递的参数,即发送(消息)。