3
我是AngularJS指令作用域的新手。我想知道是否有人可以一般性地談論如何處理ng-repeat
處理HTML中指定的變量的過程。
例如:
<html ng-app="app">
<body ng-controller="main">
<div ng-repeat="d in data" ng-init="edited_odd_times=false" ng-click="editdata()">
<span>{{d}}: {{edited_odd_times}}</span>
</div>
</body>
<script>
var app = angular.module("app", []);
app.controller("main", function($scope){
$scope.data = [1, 2, 3, 4];
$scope.data2 = [{d:1}, {d:2}, {d:3}, {d:4}];
$scope.editdata = function(){
// Here is my confuse, how can I access the d and edited_odd_times inside ng-repeat without putting them as paramters
}
});
</script>
</html>
我想知道的是:
[1]。我在想內$scope.editdata
我怎麼能改變d和edited_odd_times沒有把它們作爲參數,或者我怎樣才能訪問由ng-repeat生成的範圍?
[2]。爲什麼ng-repeat
可以影響HTML裏面的變量,而指令(比如我想定義一個像ng-repeat
這樣的指令工作,但只能不重複)和scope:true
和transclude不能影響該HTML中的變量?
謝謝
爲什麼你不想將d傳遞給editData作爲參數?這是做到這一點的標準方法。你也應該避免使用ng-init。該文檔基本上說,從來沒有使用它在一個特定的用例期望。 – rob
作爲對[2]的迴應,您可以創建一個影響transcluded作用域的指令。在這篇文章中看看題爲「The ways around」的例子http://angular-tips.com/blog/2014/03/transclusion-and-scopes/ – rob
@rob謝謝,對於問題的後半部分[1] ,你能告訴我如何訪問ng-repeat的範圍嗎? – Kuan