2
我有一個ng-repeat
循環通過processes
。我正在嘗試的是通過帶有選擇框的表單向當前的process
添加一個新的block
。但是,我的問題是我無法從控制器訪問循環內的模型。我想這是因爲在ng-repeat
循環中創建了新的範圍。訪問ng-repeat內部的模型
我仍然無法找到從控制器訪問模型的方法。這裏是html和javascript代碼段,可以讓你更好地理解問題。
<div class="container" ng-controller="ProcessCtrl">
<div class="process" ng-repeat="process in processes">
<form class="form-inline" ng-submit="addBlock($index)">
<select ng-model="blockType">
<option value="1">type1</option>
<option value="2">type2</option>
<option value="3">type3</option>
</select>
<button type="submit">add</button>
</form>
</div>
</div>
angularjs控制器
function ProcessCtrl($scope, $filter) {
//...
$scope.addBlock = function(index) {
alert($scope.blockType); // undefined
$scope.processes[index].blocks.push({type: $scope.blockType});
};
}
是否有通過了「blockType」特定的語法?或者訪問控制器中的子範圍的特定命令? – blnc
@railrailrail,沒有特別的語法。函數'addBlock()'將得到'blockType'值/對象引用/不管它是什麼。你不能使用內部的'$$ ...'變量從控制器的'addBlock()'方法訪問子範圍 - 我不會推薦這樣做。 –
現在工作,謝謝。我試圖通過$範圍仍然訪問它。 – blnc