gpt4 book ai didi

javascript - AngularJS 中的通用 getterSetter

转载 作者:行者123 更新时间:2023-11-30 12:23:18 24 4
gpt4 key购买 nike

Documentation对于 ngModel 有一个 getterSetter 的例子:

angular.module('getterSetterExample', [])
.controller('ExampleController', ['$scope', function($scope) {
var _name = 'Brian';
$scope.user = {
name: function(newName) {
// Note that newName can be undefined for two reasons:
// 1. Because it is called as a getter and thus called with no arguments
// 2. Because the property should actually be set to undefined. This happens e.g. if the
// input is invalid
return arguments.length ? (_name = newName) : _name;
}
};
}]);

这正是我所需要的,但我不想在不同的上下文中一遍又一遍地写这部分。 是否可以创建一个通用的 getterSetter?喜欢

$scope.user.name = nameGetterSetter;

我只是看不出全局函数如何在不传递范围的情况下获取或设置任何特定实例。

最佳答案

在我看来,您实际上并不需要使用 getterSetter。创建一个单独的模型来处理用户会更有用。一种方法是创建 Angular 服务。这是一个人为的例子:

// I'm using a separate module, but you don't have to
angular.module('user').factory('User', function() {

function User(name) {
this.name = name;
}

return User;

});

现在,如果我们回到您的代码:

angular.module('getterSetterExample', ['user'])
.controller('ExampleController', ['$scope', 'User', function($scope, User) {
$scope.user = new User('Brian');
}]);

我已将我的“用户工厂”注入(inject) Controller ,然后使用它来创建用户模型。如果需要,您可以将服务注入(inject)多个 Controller 。我建议你阅读 services .

如果您使用的是 REST API,请查看 ngResource .它提供了一些用于检索和存储数据的通用功能。

关于javascript - AngularJS 中的通用 getterSetter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30306209/

24 4 0
文章推荐: javascript - 检查当前迭代元素是否是最后一个?
文章推荐: c# - WCF设计原则: Is it a good idea to edit auto-generated proxy classes?
文章推荐: c# - 如何在 C# 中替换文件中的多个文本?
文章推荐: javascript - 当