Javascript 角度$scope函数在ng repeat之外不工作
我有一个Javascript 角度$scope函数在ng repeat之外不工作,javascript,angularjs,scope,angularjs-scope,Javascript,Angularjs,Scope,Angularjs Scope,我有一个元素,在其中我声明了一个控制器(目前应用程序中只有一个控制器)。我还在元素中的上有一个ng repeat,它工作正常,可以按预期创建多个表行。在控制器中,我有一些api调用,它们是为单个表行调用的,并且工作正常,还有一个函数是从中的调用的,我无法使用它。我知道这是一个范围的事情,但我就是不能理解我做错了什么 总而言之: 简化的html片段: <table ng-controller='myController'> <thead> <
元素,在其中我声明了一个控制器(目前应用程序中只有一个控制器)。我还在
元素中的
上有一个ng repeat
,它工作正常,可以按预期创建多个表行。在控制器中,我有一些api调用,它们是为单个表行调用的,并且工作正常,还有一个函数是从
中的
调用的,我无法使用它。我知道这是一个范围的事情,但我就是不能理解我做错了什么
总而言之:
简化的html片段:
<table ng-controller='myController'>
<thead>
<tr>
<th>Username</th>
<th><button ng-click='doStuff()'>Do stuff</button></th>
</tr>
</thead>
<tbody>
<tr ng-repeat='user in users'>
<td>{{user.name}}</td>
<td><button ng-click='delete(user)'>Delete</button>
</tr>
</tbody>
</table>
app.controller('myController', ['$scope', '$http', users, function($scope, $http, users) {
//api call to get users, working fine
users.getAll().success(function(data) {
$scope.users = data;
});
//api call to delete users, also working fine
$scope.delete = function(user) {
users.delete(user).success(function() {});
};
//can't get this to fire
$scope.doStuff = function() {
alert('I do stuff');
};
}]);
任何见解都会有帮助,提前感谢
编辑
我假设问题来自其中一个模块,所以我将整个内容复制到一个模块中。对于样式设置很抱歉,为了代码更简单,将其删除
编辑2
研究完plnkr后,我发现它是
中未关闭的
元素。哎哟谢谢你的回复,请原谅我的粗心
编辑3
一项更仔细的研究表明,问题实际上也存在于设计拙劣的茉莉花单元测试中。它似乎正在启动。我不得不模拟
用户的异步加载
,但这不会有什么区别。你能添加一个片段来演示这个问题吗
angular.module('app',[]).controller('myController',['$scope','$http','$timeout',
函数($scope、$http、$timeout){
//api调用获取用户,工作正常
$timeout(函数(){
$scope.users=[{
姓名:“A”
}, {
姓名:'B'
}];
}, 1000);
//api调用来删除用户,也可以正常工作
$scope.delete=函数(用户){
console.log('delete',user);
};
$scope.doStuff=函数(){
log('I do stuff');
};
}
]);代码>
用户名
做事
{{user.name}
删除
您发布的代码很好(除了用户
应该在引号中)<单击按钮时将调用code>doStuff()
。我会尝试在JSFIDDLE中重现您的问题,请检查更新的问题。