【问题标题】:angularjs- How to call the other controller in app.controllerangularjs-如何在 app.controller 中调用另一个控制器
【发布时间】:2016-02-26 14:26:48
【问题描述】:

我想看到 2 个控制器被 1 个控制器调用。 如何让它调用? PS。 B 在 iframe 标记中。 请帮帮我。

现在是html源码结构

A.html (A.js) 
B.html (B.js) A children tag -  iframe

现在是js源码(A.js)

var app = angular.module('upload',[nUpload]); //nUpload is other module 
app.controller('upload',[$scope,nupload,
function($scope,nupload){           //nupload is service of nUpload module 
            .... //fileupload 
}]);                         ----- **1contorller**   

B.js(js文件在另一个html标签(iframe)中)

var app = angular.module('progress',['']);</br>
app.controller('progress',[$scope,,,,] function($scope,,){
          ... //draw progress } 
);                   ----- **2contorller**   

我梦想着资源(A.js)

app.controller('upload',,,,
function(,,,){
    B.progress = "10%"
}

【问题讨论】:

    标签: javascript jquery html angularjs iframe


    【解决方案1】:

    嗯.. 要在控制器之间共享对象,您需要一个工厂。

    试试这个:

    A.js

    var app = angular.module('upload',[nUpload,'container']);
    
    app.controller('upload',[$scope,nupload,'Progress',
    function($scope,nupload,Progress){
        Progress.setProgress("10%");
    }]);
    

    B.js

    var app = angular.module('progress',['container']);
    
    app.controller('progress',[$scope,'Progress',,, function($scope,Progress){
      var progressData = Progress.getProgress();
    
     }]); 
    

    container.js

    var app = angular.module('container',[]);
    
    app.factory("Progress",[function(){
       var progress = "0%";
       return {
         getProgress: function() {
            return progress;
         }
         setProgress: function(data) {
            progress = data;
         }
       }
    }]);
    

    希望对您有所帮助。

    ;D

    【讨论】:

    • 非常感谢! @Javierif :)
    • if 函数被 A.js (Progress.setProgress) 调用
    • 当A.js(Progress.setProgress)调用函数时,我可以更新或绑定各种B.js吗?...我仍然不知道Angular js框架......:(帮助我的角度!!
    • 就像这个 source{setProgress: function(data) { progress = data; var ifr = parent.document.getElementById('iframeId'); var doc = ifr.contentWindow || ifr.contentDocument; if ( doc.document ) doc =doc.document; var scope = angular.element( doc.getElementById('ProgressId') ).scope(); scope.$apply(function() { scope.upload(); }); }}
    • 嗯...你可以使用 $watch 到这个.. 等等我粘贴一个片段代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多