Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 Angularjs类,在模型中具有属性和方法_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs类,在模型中具有属性和方法

Javascript Angularjs类,在模型中具有属性和方法,javascript,angularjs,Javascript,Angularjs,这是一种好的做法吗?这是正确的方法吗 function UsersCtrl ($scope, $window, $http) { $scope.Users = { data : [], load : function () { $http.get('users/').success(function (data) { $scope.Users.data = data; }

这是一种好的做法吗?这是正确的方法吗

function UsersCtrl ($scope, $window, $http) {

    $scope.Users = {

        data : [],

        load : function () {
            $http.get('users/').success(function (data) {
                $scope.Users.data = data;
            });
        },

        emailUser : function (user) {        
            // send email (just an example)
        }

    };
}
HTML中的一个示例:

<li ng-repeat="user in Users.data">
</li>

<a href="#" ng-click="Users.load()">
    Load
</a>

<a href="#" ng-click="Users.emailUser(user)">
    Email
</a>
  • 我担心性能

    我在网上搜索,没有看到任何类似的代码。它们中的大多数在特定的$scope模型中分离方法和属性


    提前谢谢

    此特定代码不会影响性能,但会影响应用程序的可测试性和可读性。另外,这与关注点分离原则和标准MVC模式是对立的

    您的用户对象应该在服务工厂中定义,并在需要时注入

    如果将其保留在控制器中定义,则如果需要在其他控制器中使用相同的Users对象,则必须重新定义它


    也就是说,您没有看到这样的代码并不奇怪。

    谢谢Stewie的回答。你有没有关于在这种情况下如何使用工厂的例子?每个属性和方法都必须在服务中,我必须在控制器中复制它才能访问它?如何将DOM操作与服务方法交互??再次谢谢。有一个好消息让你走。