2016-07-12 6 views
2
$scope.openModal = function (page, size) { 
    console.log(page); // this is working 

    $uibModal.open({ 
     animation: true, 
     templateUrl: 'app/pages/servers/newRole.html', 
     size: size, 
     resolve: { 
      items: function() { 
       return $scope.items; 
      } 
     } 
    }); 
}; 

$scope.hello = function() { 
    console.log(page); // need value of page from above function 

    var btn = document.createElement("BUTTON"); 
    var t = document.createTextNode("ABC"); 

    btn.classList.add("btn-primary", 'btn-xs', 'btn'); 
    btn.appendChild(t); 

    document.getElementById('Id1').appendChild(btn); 
} 

私はグローバル変数を使用してこのページを割り当てようとしましたが、それはundefinedです。angularJSのある関数から別の関数に変数を渡すにはどうすればよいですか?

hello(page)openModalの中に呼び出すことでこの変数にアクセスできますが、必要がない場合はhello()と呼びます。

私はBTN2のクリックに)(ハロー呼び出して、2つのボタンがあり、「BTN1」のクリックでopenModal関数を呼び出して、このボタンをページパラメータを渡すと、そのモーダル内の別のボタンが「BTN2」があります。

+0

あなたはそれらの関数を呼び出しています。 –

+0

私は2つのボタンを持っており、 'btn1'をクリックするとopenModal関数が呼び出され、次にそのモードの 'btn2'の中に別のボタンがあり、btn2をクリックするとhello()が呼び出されます。 –

+0

ページパラメータをhello関数に送るだけではどうですか? – Weedoze

答えて

0
$scope.openModal = function (page, size) { 
    console.log(page); // this is working 
    $uibModal.open({ 
     animation: true, 
     templateUrl: 'app/pages/servers/newRole.html', 
     controller: ModalInstanceCtrl, //resolved items can be use in this controller 
     size: size, 
     resolve: { 
      items: function() { 
       return page; // this will return value 
      } 
     } 
    }); 
}; 
    angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items) { 
    $scope.hello = function() { 
     console.log(items); // Here you can get value 
    } 
    }); 
2

Tl; Dr:あなたのスコープを使用するか、サービスを使用してください。

それらのメソッドは、同じコントローラである場合:

  • がそれを初期化します:$scope.data = {};
  • プッシュいくつかのデータをそれに:$scope.data = anything;

    あなただけの変数を介して、それを渡すことができるはずですまたは$scope.data.field = anything

  • はあなたの関数で、さらにそれを使用します。$scope.data ... \\ Do anything

、彼らがいない場合:

あなたはAngularJS serviceを使用することができます。データ処理が終了したら、それをサービスに保存してから後で元に戻すことができます。あなたが望む任意のデータのゲッター/セッターとしてそれを表示します。例:次に

var service = angular.module('yourService', []) 
    .factory('$yourService', function() { 
     var yourdata = {}; 

     return { 
      setData: function(data) { 
       yourdata = data; 
      }, 

      getData: function() { 
       return data; 
      } 
     }; 
    }); 

return service; 

、あなたのコントローラーに注入することを確認してください。


ダミーAngularJSサービス。あなたの最初の関数の中に、あなたは、あなたのサービスを呼び出すことができます。 $yourService.setData(anyData);

をそして、あなたの第二の機能でデータを取り戻す:あなたはどのように `hello`と` openModal`が関連してどのように表示する必要が$yourService.getData();

関連する問題