从控制器访问ng-model未定义

时间:2015-08-24 22:03:41

标签: javascript angularjs controller

我有一个 在我的html中<input type="text" ng-model="authorid">,当用户更新表单中的其他字段时,它会自动更新。它在html中工作正常,但是试图从控制器访问authorid它总是未定义

console.log($scope.authorid);

......有什么想法吗?

我在这里尝试了很多解决方案,没有一个工作,特别是我不想添加另一种方法来设置它。有什么想法吗?

2 个答案:

答案 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中,子范围通常是原型继承自其父范围。