Javascript 从未定义的控制器访问ng模型

Javascript 从未定义的控制器访问ng模型,javascript,angularjs,controller,Javascript,Angularjs,Controller,我正在吃晚饭 在我的html中,当用户更新表单中的其他字段时,它会自动更新。它在html中工作良好,但是试图从控制器访问authorid时,它总是未定义 console.log($scope.authorid); 。。。有什么想法吗 我在这里尝试了许多解决方案,但都没有成功,特别是我不想添加其他方法来设置它。有什么想法吗?您应该遵循最佳实践,并将您的“authorid”设置为object.property变量 首先,在控制器中定义如下内容: $scope.form = {}; 然后在html

我正在吃晚饭
在我的html中,当用户更新表单中的其他字段时,它会自动更新。它在html中工作良好,但是试图从控制器访问authorid时,它总是未定义

console.log($scope.authorid);
。。。有什么想法吗


我在这里尝试了许多解决方案,但都没有成功,特别是我不想添加其他方法来设置它。有什么想法吗?

您应该遵循最佳实践,并将您的“authorid”设置为object.property变量

首先,在控制器中定义如下内容:

$scope.form = {};
然后在html中执行以下操作:

<input type="text" ng-model="form.authorid">


这是因为在AngularJS中,子作用域通常是从父作用域继承的。

在花了大量的时间试图理解发生了什么之后。我在这里找到了答案:

这基本上让我编写了以下代码,并修复了它:

var e = document.getElementById("field");
e.value = "my updated value";
var $e = angular.element(e);
$e.triggerHandler('input');

感谢@Freshyeball,也感谢所有人尝试提供帮助

请发布您的代码。您打破了在
ng车型中没有圆点的黄金法则
。这意味着它是一个对象,因此具有原语没有的继承性。由于这个原因,您目前可能会丢失双向绑定。我也尝试过做两件事:
,在我的控制下,我做了两件事
$scope.myform={}
console.log($scope.myform.authorid)仍然未定义..需要显示更多视图代码,因为这听起来像是范围问题。输入是否在具有隔离作用域的指令中?我已经按照上面的注释进行了操作,但仍然无法获取其值。