我有一个
在我的html中<input type="text" ng-model="authorid">
,当用户更新表单中的其他字段时,它会自动更新。它在html中工作正常,但是试图从控制器访问authorid它总是未定义
console.log($scope.authorid);
......有什么想法吗?
我在这里尝试了很多解决方案,没有一个工作,特别是我不想添加另一种方法来设置它。有什么想法吗?
答案 0 :(得分:1)
花了很多时间试图了解正在发生的事情。我在这里找到了答案: AngularJS update input manually does not trigger change in the model
这基本上让我编写了以下代码并修复了它:
var e = document.getElementById("field");
e.value = "my updated value";
var $e = angular.element(e);
$e.triggerHandler('input');
感谢@Fresheyeball并感谢大家的帮助
答案 1 :(得分:0)
你应该遵循最佳实践,并使你的`authorid&#39;到object.property变量。
首先,在控制器中定义类似:
$scope.form = {};
然后在你的html中,执行:
<input type="text" ng-model="form.authorid">
这是因为在AngularJS中,子范围通常是原型继承自其父范围。