在Angular中使用$ scope属性的最佳实践

Bat*_*man 5 javascript angularjs

我正在开发一个应用程序,我正在努力确保我$scope正确使用它.

我观看了最佳实践视频和Miško有点说我们不应该$scope在这里操纵属性.

我一直在创建像这样的变量:

    $scope.groups = groupService.getGroups()
    $scope.users = userService.getUsers();
    $scope.selectedUser = false;
Run Code Online (Sandbox Code Playgroud)

我应该重新编写我的应用程序来使用这样的东西:

    $scope.model = {
        selectedAvailableGroups: [],
        selectedAssignedGroups: [],
        allGroups: groupService.getGroups(),
        allUsers: userService.getUsers(),
        selectedUser: false
    }
Run Code Online (Sandbox Code Playgroud)

我问的原因是我很少看到使用$scope.model方式的示例或应用程序,它通常只是声明的属性$scope.

Mik*_*eel 4

由于 javascript 搜索继承链的方式,您的模型名称中应该始终包含句点。我建议您按照您的建议进行重构。

需要明确的是,当您在 javascript 对象上设置原始属性时,例如:

$scope.Name ='Fred'
Run Code Online (Sandbox Code Playgroud)

如果名称不存在,JavaScript 将创建一个新属性,而不检查父对象。

如果你这样做:

$scope.Model.Name = 'Fred'
Run Code Online (Sandbox Code Playgroud)

javascript 将一直检查父级,直到找到 Model.Name 或发现它未定义。