AngularJS ng-click 不起作用,但 ng-change 在调用相同函数时起作用
AngularJS ng-click not working, but ng-change is, when calling the same function
编辑 代码全部正确,问题是因为包含'ngTouch',请参阅下面我自己的答案。
我可能在这里犯了一些愚蠢的错误,但我终究找不到它。
我有这段标记,它与控制器正确连接:
<input type="text" ng-change="doStuff()" ng-model="stuff"/>
<button ng-click="doStuff()">doStuff</button>
控制器代码:
console.log('Hi from controller');
$scope.stuff = "something";
$scope.doStuff = function() {
alert('doing stuff');
}
问题是单击按钮时没有任何反应。如果我更改输入字段,我会收到警报,因此 ng-change 有效,但 ng-click 无效。
如果这些信息不够,请告诉我,但我不知道还能提供什么,一般设置似乎工作正常...
HTML 的其余部分不包含任何 Angular 指令,并且在 myModule.config 中这样加载:
$stateProvider
.state('stuff', {
templateUrl: 'pages/stuff.html',
url: '/stuff',
controller: 'StuffCtrl'
})
控制器定义如下:
angular.module('myModule')
.controller('StuffCtrl', function ($scope) {
// above code
});
原来问题出在另一个依赖项'ngTouch'上。我没有使用它,但它仍然被加载。我的模块甚至不依赖于它。 (我正在使用此处的管理站点模板:http://startangular.com/product/sb-admin-angular-theme/)。删除 ngTouch 的加载后,它按预期工作。我也会将此作为错误提交给两个项目...感谢您的帮助!
编辑 代码全部正确,问题是因为包含'ngTouch',请参阅下面我自己的答案。
我可能在这里犯了一些愚蠢的错误,但我终究找不到它。 我有这段标记,它与控制器正确连接:
<input type="text" ng-change="doStuff()" ng-model="stuff"/>
<button ng-click="doStuff()">doStuff</button>
控制器代码:
console.log('Hi from controller');
$scope.stuff = "something";
$scope.doStuff = function() {
alert('doing stuff');
}
问题是单击按钮时没有任何反应。如果我更改输入字段,我会收到警报,因此 ng-change 有效,但 ng-click 无效。 如果这些信息不够,请告诉我,但我不知道还能提供什么,一般设置似乎工作正常...
HTML 的其余部分不包含任何 Angular 指令,并且在 myModule.config 中这样加载:
$stateProvider
.state('stuff', {
templateUrl: 'pages/stuff.html',
url: '/stuff',
controller: 'StuffCtrl'
})
控制器定义如下:
angular.module('myModule')
.controller('StuffCtrl', function ($scope) {
// above code
});
原来问题出在另一个依赖项'ngTouch'上。我没有使用它,但它仍然被加载。我的模块甚至不依赖于它。 (我正在使用此处的管理站点模板:http://startangular.com/product/sb-admin-angular-theme/)。删除 ngTouch 的加载后,它按预期工作。我也会将此作为错误提交给两个项目...感谢您的帮助!