Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 在模块的工厂方法内创建的共享对象的更新在Angular JS的另一个模块中没有更新_Javascript_Angularjs_Ng Controller_Ng App_Ng Modules - Fatal编程技术网

Javascript 在模块的工厂方法内创建的共享对象的更新在Angular JS的另一个模块中没有更新

Javascript 在模块的工厂方法内创建的共享对象的更新在Angular JS的另一个模块中没有更新,javascript,angularjs,ng-controller,ng-app,ng-modules,Javascript,Angularjs,Ng Controller,Ng App,Ng Modules,你好,我是Angular JS的初学者,现在我陷入了某种困境。 我制作了两个模块 菜单和画布 现在,我在菜单模块的工厂方法中声明了一个对象,使其可从画布模块使用 我的代码如下 var Menu=angular.module("menu",[]); Menu.factory("Data",['$rootScope', function($rootScope){ var obj={}; obj.server="http://localhost:8080"; obj.tra

你好,我是Angular JS的初学者,现在我陷入了某种困境。 我制作了两个模块

菜单画布

现在,我在菜单模块的工厂方法中声明了一个对象,使其可从画布模块使用

我的代码如下

var Menu=angular.module("menu",[]);

Menu.factory("Data",['$rootScope', function($rootScope){

    var obj={};
    obj.server="http://localhost:8080";
    obj.transformations=null;
    obj.actions=null;
    obj.sources=null;
    obj.typeSelected=null;

    obj.save = function(data) {
         $rootScope.$broadcast('data:updated',data);
       }

    return obj;
}]);
现在我有了一个更新obj属性值的控制器

Menu.controller("menuClick",function($scope,Data){

    $scope.obj=Data;

    $scope.clickOnMenu=function(type)
    {
        if(type.indexOf("Source")!=-1)$scope.obj.typeSelected="source";
        else if(type.indexOf("Transformation")!=-1)$scope.obj.typeSelected="transformation";
        else if(type.indexOf("Action")!=-1)$scope.obj.typeSelected="action";

        console.log($scope.obj);

        //added bootstrap here
        angular.bootstrap(document.getElementById("canvascontainer"), ['canvas']);
    }
})
现在,当我创建画布模块时,我添加了菜单模块的依赖项

var Canvas=angular.module('canvas',['menu']);

Canvas.controller("canvasOperation",["Data",'$scope',function(Data,$scope){

    $scope.obj=Data;

    $scope.clickCanvas=function()
    {
        console.log($scope.obj)
        if($scope.obj.typeSelected!=null)
        {
         console.log("fun started");
        }
    }
}])
 //removed it from here
//angular.bootstrap(document.getElementById("canvascontainer"), ['canvas']);
现在的问题是,即使我从菜单模块的clickOnMenu方法更新了typeSelected值,typeSelected的值在画布模块和画布模块中也没有更新

console.log($scope.obj.typeSelected)
给出输出null


我试图解释每一个细节。你能告诉我哪里做错了吗?

我想当你引导
画布
模块时。插入的
菜单
模块也会加载,但
菜单点击
内分配的值不会执行。您是否检查了在引导时是否执行了
菜单单击
,ModuleNoMenuClick仅在我单击某个对象时才执行。因此,这意味着不执行菜单单击工厂中未设置的值。这就是为什么
$scope.obj.typeSelected
最初为空。因此,当obj.typeSelected的值发生更改时,您能否建议我如何实现,我可以从画布模块获取它?在单击菜单单击之前引导画布