1

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

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

提前致谢!

4

1 回答 1

0

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

您的用户对象应该在服务工厂内定义,然后在需要的地方注入。

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

也就是说,您没有看到任何这样的代码也就不足为奇了。

于 2013-03-05T12:47:22.833 回答