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)代码>仍然未定义..需要显示更多视图代码,因为这听起来像是范围问题。输入是否在具有隔离作用域的指令中?我已经按照上面的注释进行了操作,但仍然无法获取其值。