Angularjs类,包含模型中的属性和方法

时间:2013-03-05 12:29:49

标签: javascript angularjs

这是一个好习惯吗?这是一种正确的方法吗?

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模型中的方法和属性分开。

提前致谢!

1 个答案:

答案 0 :(得分:0)

此特定代码不会影响性能,但会影响应用程序的可测试性和可读性。此外,这与Separation Of Concerns原则和标准MVC模式相对立。

您的Users对象应在服务工厂内定义,而不是在需要的地方注入。

如果您要在控制器内定义它,那么如果您需要在其他控制器内部使用相同的Users对象,则必须再次重新定义它。

那就是说,你没有看到这样的代码就不足为奇了。