我有一個ng-repeat
,它創建一個帶有一些起始數據的表單。然後用戶可以自由修改所述數據,並且更改應該出現在表單中。在此之前,用戶提交的數據由另一個功能消毒,該功能在按鈕上由ng-click
調用。
一切正常工作(我檢查了我的$scope.some_array
,其中ng-repeat
採取的數據和新的數據是在正確的地方),但沒有任何反應在頁面上。
元素:
<li ng-repeat="field in some_array" id="field-{{$index}}">
<div class="{{field.field_color}}">
<button type="button" ng-click="save_field($index)">done</button>
{{field.nice_name}}
</div>
<div id="field-input-{{$index}}">
<input type="text" id="{{field.tag}}" value="{{field.content}}">
<label for="{{field.tag}}">{{field.nice_name}}</label>
</div>
</li>
save_field
代碼:
$scope.save_field = function (index) {
console.log($scope.some_array[index]["content"])
var value = $("#field-" + index).children("div").children("input").val()
var name = $scope.some_array[index]["name"]
var clean_value = my_clean(value)
if (norm_value === "") {
return
}
$scope.some_array[index]["content"] = clean_value
console.log($scope.some_array[index]["content"])
}
在我看到控制檯:
10.03.16
10/03/16
這是正確的,但在形式我只看到10.03.16
。我已經嘗試將$timeout(function(){$scope.$apply()})
作爲我函數的最後一行,但輸出仍然相同。
擺脫所有的jQuery和使用的角度方法論。使用'ng-model'將數據綁定到輸入字段 – charlietfl
try ** $ scope。$ evalAsync(function(){$ scope.some_array [index] [「content」] = clean_value;}); ** – sbaaaang