私は新しく、私はどのように角度の間でコントローラ間で変数を共有できるのだろうかと思っています。angular.jsのコントローラ間で変数を共有する
function MainCntl($scope) {
---code
}
function SearchCtrl($scope, $http) {
$scope.url = 'http://10.0.0.13:9000/processAdHoc';
$scope.errorM = "No results";
$scope.search = function() {
$http.post($scope.url, { "data" : $scope.keywords}).
success(function(data, status) {
$scope.status = status;
$scope.data = data;
$scope.result = data;
alert('yes');
})
.
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
alert('no');
$scope.result = "failed";
});
};
}
Index.htmlとは
<body ng-controller="MainCntl" >
---code
<div ng-controller="SearchCtrl">
<form class="well form-search">
<div class="ui-widget">
<label for="tags"></label>
<a ng-click="search()"><input type="image" src="../../images/search1.png" class="searchbox_submit" /></a>
<input ng-model="keywords" placeholder="Shadow Search" id="tags" class="input-medium search-query rounded" />
</div>
</form>
</div>
---code
<p ng-model="result">
{{result}}
</p>
</body>
すべては、私がデータを送信し、応答を受信していアヤックスでうまく動作:Main.jsで
- 私は、次のスクリプトを使用しています私の質問は以下の通りです:
SearchCtrl関数では、私は$ scope.resultという変数を持っています。これについては、後でIndex.htmlを参照してください。その変数を含むhtmlコードをSearchCtrlコントローラに挿入すると正常に動作しますが、MainCtrlコントローラにあれば動作しません。どのようにしてコントローラ間でこの変数を共有できますか?
おかげで先に
こんにちはShaiRez、クイックアンサーとサンプルのおかげで、悲しいことにそれはまだ動作していない...おそらく私は正しく実装されていません。この例で提供したすべてを追加し、テンプレートを{{myVar.data}}に変更しました。 2つの質問が発生します。テンプレートビューも変更しないでください。myVarをajax呼び出しの成功/エラー関数に追加してください。おかげでもう一度、Gidon – Gidon
もう少し読んだ後、私は$ rootScopeでこれを行う簡単な方法を見つけました...とにかくあなたの時間と歓声のmeetupsのおかげで、私は次のものを作るしようとします:) – Gidon
@ShaiRez認証を処理するための好ましいモデルですか?サービスで認証し(まだログインしていない場合)、必要なすべてのコントローラにユーザモデルを返しますか? – turbo2oh