首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在angularjs中显示来自另一个控制器的值?

如何在angularjs中显示来自另一个控制器的值?
EN

Stack Overflow用户
提问于 2016-03-31 06:52:25
回答 2查看 372关注 0票数 0

我有两个模块,即身份验证和主页,它们都有自己的controllers.each,其中有同名controllers.js

我必须在主页(模块主页)中显示像$scope.username这样的值,这是来自模块身份验证控制器的.How,可以吗??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-31 06:56:55

有很多种方法。我希望您在那里创建一个app.factory('dataFactory' , func(){..})get/set数据,并通过应用程序在任何模块中检索您的值。

代码语言:javascript
运行
复制
app.factory('testFactory', function(){
        var _name = '';
    return {
        getName: function(text){
            return _name;
        },
        setName: function(name){
            _name = name;
        }  
    }               
});

工作小提琴

希望能帮上忙。

票数 2
EN

Stack Overflow用户

发布于 2016-03-31 06:59:03

您可以使用共享服务,这将返回您的值,控制器中的值将该服务作为依赖项注入。

例如:

代码语言:javascript
运行
复制
angular.module( 'yourApp' )
    .value("username", "Jon")
    .controller("index", ["$scope", "username", function($scope, username) {
      $scope.username = username;
    }]);

或者使用工厂配方:

代码语言:javascript
运行
复制
angular.module( 'yourApp' )
    .factory("username", function(){
       var value = 'John';
       return {
         get: function(){
            return value;
         },
         set: function(newName){
           value = newName;
         }
       }
    })
    .controller("index", ["$scope", "username", function($scope, username) {
      $scope.username = username.get();
    }]);

如果这个值是动态的,您可以将值保存为对象并返回引用,那么您就不需要使用手动创建的手表来查看值是否更改:

代码语言:javascript
运行
复制
angular.module( 'yourApp' )
    .factory("username", function(){
       var username = {
          value: 'John'
       };
       return {
         get: function(){
            return username;
         },
         set: function(newName){
           username.value = newName;
         }
       }
    })
    .controller("index", ["$scope", "username", function($scope, username) {
      $scope.usernameObj = username.get();
    }]);

并考虑到:

代码语言:javascript
运行
复制
   {{usernameObj.value}}

您还可以通过在父作用域中保存值来使用$scope的原型继承。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36326128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档