我使用Angular并且我无法编辑动态创建的对象,即使它被正确显示(意味着绑定有效)。
我有以下观点:
<html>
<head>
</head>
<body ng-app='TestApp'>
<div ng-controller='TestCtrl'>
<input ng-model="newModel().name"/>
</div>
</body>
</html>
以下控制器实现:
var TestApp = angular.module("TestApp", []);
function TestCtrl($scope) {
$scope.newModel = function(){
return { name: 'Fresh' }
}
}
我使用方法返回正确的绑定对象,因为我需要执行一些逻辑来决定应绑定哪个对象。 输入字段显示正确的动态创建的值。但我似乎无法编辑它。
我做错了什么?这是实现这种功能的错误方法吗?
感谢。
答案 0 :(得分:1)
您可以更新函数中的scope
变量,而不是返回对象并将函数附加到作用域。
控制器代码:
var TestApp = angular.module("TestApp", []);
function TestCtrl($scope) {
$scope.newModel = {}; // initialize the scope variable
function updateScope () {
// do some logic
$scope.newModel = { name: 'Fresh' }; // update it with the required object
}
updateScope(); // run the function
}
HTML code:
<body ng-app='TestApp'>
<div ng-controller='TestCtrl'>
<!-- remove `()` since `newModel` is no longer a function -->
<input ng-model="newModel.name"/>
</div>
</body>
希望这可以解决问题。