10

我有这个代码片段:

<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 正在创建一个新的范围。

4

2 回答 2

14

确实ng-repeat创建了一个新的范围。但是您不能通过在控制器中执行 $scope 来访问该范围。相反,您可以执行以下操作:

<button ng-click="send(message)">Send</button>

在你的 JS 中:

$scope.send = function(message){    
    alert(message.text);    
};
于 2013-08-14T09:54:08.393 回答
-1

该消息仅访问本地端,即视图端(index.html)。Dosn,t 访问控制器端。但是消息传递的参数是发送(消息)。

于 2013-08-21T10:18:57.090 回答