相关疑难解决方法(0)

对服务与工厂感到困惑

据我了解,当在工厂内部时,我返回一个被注入控制器的对象.在服务内部时,我正在处理使用的对象this而不返回任何内容.

我假设服务总是单例,并且每个控制器都会注入一个新的工厂对象.然而,事实证明,工厂对象也是单身人士?

用于演示的示例代码:

var factories = angular.module('app.factories', []);
var app = angular.module('app',  ['ngResource', 'app.factories']);

factories.factory('User', function () {
  return {
    first: 'John',
    last: 'Doe'
  };
});

app.controller('ACtrl', function($scope, User) {
  $scope.user = User;
});

app.controller('BCtrl', function($scope, User) {
  $scope.user = User;
});
Run Code Online (Sandbox Code Playgroud)

当改变user.firstACtrl事实证明,user.firstBCtrl也发生了变化,比如User是一个单身?

我的假设是在一个带有工厂的控制器中注入了一个新实例?

angularjs

616
推荐指数
11
解决办法
26万
查看次数

全局命名空间会被污染是什么意思?

全局命名空间会被污染是什么意思?

我真的不明白受污染的全局命名空间意味着什么.

javascript

87
推荐指数
3
解决办法
3万
查看次数

全局定义的AngularJS控制器和封装

根据AngularJS的教程,控制器函数仅位于全局范围内.

http://docs.angularjs.org/tutorial/step_04

控制器功能本身是否自动被解析为封装范围,还是它们居住在全球范围内?我知道他们传递了对自己的$ scope的引用,但看起来这个函数本身只是坐在全局范围内.显然,这可能会导致问题,我已经通过经验和教育来学习封装.此外,如果他们确实居住在全球范围内,那么将它们封装在要引用的对象中是不是最佳实践:

    Object.functionName();
Run Code Online (Sandbox Code Playgroud)

而不是这个:

    functionName();
Run Code Online (Sandbox Code Playgroud)

以防止全球范围内的污染(即重写功能等)发生的问题.

javascript encapsulation angularjs

28
推荐指数
2
解决办法
2万
查看次数

标签 统计

angularjs ×2

javascript ×2

encapsulation ×1