$ ng事件未在文本输入的ng-change中定义

时间:2016-03-10 20:54:02

标签: javascript angularjs

我希望我的问题很容易解决,我无法通过public class ClassB { ClassA A; public int AID { get {return A.ID;} } public ClassB(ClassA a) { A = a; } } 访问该值,因为我有多个这样的框,因为它们是作为表单中输入列表的一部分呈现的。我正在尝试使用ng-model获取文本框的ID和文本值。继承人我的HTML:

ng-change

(需要ng-model,这就是为什么它在那里)。她是我的控制器片段:

<input type="text" class="other-box" ng-model="test" id="4" ng-change="otherBoxUpdate(this)"/> 

$scope.otherBoxUpdate = function (obj, $event) { console.log(obj) console.log($event) console.log($event.target) } 似乎返回了一个范围值,但是根据我已阅读的内容我需要访问obj,但$event.target未定义。我做错了什么?

2 个答案:

答案 0 :(得分:3)

ng-change不允许将$ event作为参数传递。

 ng-change="otherBoxUpdate(test)"

&#13;
&#13;
var myapp = angular.module('app', []);
myapp.controller('Ctrl', function ($scope) {
  $scope.otherBoxUpdate = function (obj) {

    console.log(obj);
}
 
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="Ctrl as vm">

<input type="text" class="other-box" ng-model="test" id="4" ng-change="otherBoxUpdate(4)"/> 
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您只需要识别单击的输入,则可以将其他一些识别信息传递给处理程序。例如,我们可以传递id:

<input type="text" class="other-box" ng-model="test" id="4" ng-change="otherBoxUpdate(4)"/>