相关疑难解决方法(0)

AngularJS中控制器之间通信的正确方法是什么?

控制器之间通信的正确方法是什么?

我目前正在使用一种可怕的软糖包括window:

function StockSubgroupCtrl($scope, $http) {
    $scope.subgroups = [];
    $scope.handleSubgroupsLoaded = function(data, status) {
        $scope.subgroups = data;
    }
    $scope.fetch = function(prod_grp) {
        $http.get('/api/stock/groups/' + prod_grp + '/subgroups/').success($scope.handleSubgroupsLoaded);
    }
    window.fetchStockSubgroups = $scope.fetch;
}

function StockGroupCtrl($scope, $http) {
    ...
    $scope.select = function(prod_grp) {
        $scope.selectedGroup = prod_grp;
        window.fetchStockSubgroups(prod_grp);
    }
}
Run Code Online (Sandbox Code Playgroud)

scope angularjs

470
推荐指数
9
解决办法
21万
查看次数

Angular服务应该有州吗?

最近,我和一些同事正在讨论AngularJS服务是否应该有州.我们提出了一些支持和反对的论据,我希望得到关于这个主题的更多想法和反馈.在我的搜索中,我发现了这一点,但似乎没有提到任何明确的最佳实践.在无客户端的世界中,服务永远不应该保持状态,但我开始认为它可能是客户端可接受的,因为它是一个不同的问题.

服务持有状态的原因:

  1. 多个线程不会访问该服务.每个浏览器都有自己的服务实例.
  2. 允许服务仅保留其关心的状态,而不是将其存储在rootScope中.包囊

服务不成立的原因:

  1. 服务不再是幂等的.调用函数可能会更改状态,因此在根据服务状态调用它时可能会有不同的结果.
  2. 我认为总的来说这会更容易测试.

可能在"for services holding state"部分中解决#2的一种方法是在rootScope上设置包含应用程序当前状态的appState对象.然后将所有州聚集在一个位置,然后您只需在服务中提取所需的内容.我发现了这个并且想知道

service state angularjs

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

FACTORY:获取Firebase简单登录的当前user.id(电子邮件/密码)

我正在寻找一种可靠的方法来让所有控制器中的"当前用户ID"可用.使用:Firebase简单登录:电子邮件/密码验证

我的ida:我需要一个"工厂",我可以注入我的控制器,让"当前用户ID"始终可用.

我想出了这段代码:

    app.factory('User', ['angularFire',

    //Get Current UserID

    function(angularFire){

        console.log ('FACTORY: User');
            var currentUser = {};
            var ReturnStr = '';
        var ref = new Firebase("https://myFIREBASE.firebaseio.com/");
        var authClient = new FirebaseAuthClient(ref, function (err, user) {

            if (err) {
                    ReturnStr = 'FACTORY: User Error: ' + err; 
                console.log (ReturnStr);
                        //var User = ReturnStr;
            } else if (user) {
                console.log ('FACTORY: User: Login successfully:');
                console.log (user);
                currentUser = user;
            } else {
                //console.log ('-----------User: Logged Out ---------------');
                    ReturnStr = 'FACTORY: Logged out: Redirect …
Run Code Online (Sandbox Code Playgroud)

angularjs firebase angularfire

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

angularjs ×3

angularfire ×1

firebase ×1

scope ×1

service ×1

state ×1