Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 在角域中作为作用域实现的模型_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 在角域中作为作用域实现的模型

Javascript 在角域中作为作用域实现的模型,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我现在遇到的情况是,我将模型实现为一个普通的JavaScript对象。因此,您可以同步地向模型请求一个值,并且可以订阅事件以获得有关模型更新的通知。但我不喜欢这样做。它会导致大量代码和到处检查 现在,我一直在想,对模型使用角度和隔离范围不是更好吗?这样,任何对特定值感兴趣的人都可以观察模型的变化 例如: functionuserservice($rootScope){ var模型=$rootScope.$new(true); this.getModel=函数(){ 收益模型; }; } 函数us

我现在遇到的情况是,我将模型实现为一个普通的JavaScript对象。因此,您可以同步地向模型请求一个值,并且可以订阅事件以获得有关模型更新的通知。但我不喜欢这样做。它会导致大量代码和到处检查

现在,我一直在想,对模型使用角度和隔离范围不是更好吗?这样,任何对特定值感兴趣的人都可以观察模型的变化

例如:

functionuserservice($rootScope){
var模型=$rootScope.$new(true);
this.getModel=函数(){
收益模型;
};
}
函数userWidget(userService){
var user=userService.getModel();
用户.$watch('isLoggedIn',函数(isLoggedIn){
//对我是否登录的用户做出反应。。。
});
}
这是个好主意还是个坏主意?有什么想法吗?你是怎么解决的


即使很傻,这里有一个小演示:


谢谢

/马丁

这没什么错,但在我随机做之前,我个人有一个好处可以描述$$new实际上有点重——AngularJS范围有很多额外的引用对象,比如兄弟姐妹和父母。如果你有5个,谁在乎呢?但是如果你有5000个垃圾,垃圾收集器要管理的话,那就太重了。如果它能给你带来一些好处,这是完全有道理的,但如果只是为了它本身,我就不麻烦了


在你的例子中,你这么依赖变量提升有什么原因吗?它通常被视为副产品或反模式,因此它可能会使其他帮助维护代码的开发人员望而却步。还是你一个人飞?:)

有趣的。。。我不确定将一个隔离的作用域作为另一个作用域的属性放置会产生什么后果……您是指
$inject
s吗?由于在定义注射剂时存在重复,使它们靠近函数参数可以更容易地处理和发现任何错误。不,我们是一个由5名JS开发人员组成的团队。