Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度$scope函数在ng repeat之外不工作_Javascript_Angularjs_Scope_Angularjs Scope - Fatal编程技术网

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中重现您的问题,请检查更新的问题。