こんにちは、あるコントローラから別のコントローラにデータを渡そうとしていますが、データがUIのもう一方の端に表示されません。コントローラ間でデータが流れない
これは私のサービスコードである: -
app.factory('ServiceF', function($rootScope) {
var service = {};
service.data = false;
service.sendData = function(data){
this.data = data;
$rootScope.$broadcast('data_shared');
};
service.getData = function(){
return this.data;
};
return service;
});
コントローラ1つのコード: -
app.controller('Ctrlone', ["$scope", "ServiceF", function ($scope, ServiceF) {
$scope.Info= {};
$scope.ser= function(){
ServiceF.sendData($scope.Info);
console.log($scope.Info);
};
}]);
$scope.Info
データがどの他のソースから首尾よくここに来ています私は投稿していません。しかし、それは来ている。
コントローラー2: - 私は情報を表示したい
app.controller('Ctrltwo', ["$scope" ,"ServiceF",
function($scope , ServiceF) {
$scope.Info= '';
$scope.$on('data_shared',function(){
var good = ServiceF.getData();
$scope.Info = good;
});
}]);
UI: - 第一UIから
<div class="col-sm-8">
<h1 class="mainTitle">Ok Start </h1>
<h2>{{good}}</h2>
</div>
ボタンのクリック機能: -
<label class="cardlabel" style="width:11vw" ui-sref="uitwo" ng-click="ser()">Send</label>
今どこが間違っていますか? 2番目のUIに情報が表示されません。また、データがサービスに渡っているかどうかを確認するにはどうすればよいですか?
適切かつ一貫性のある方法でインデントした場合、および命名規則を尊重した場合は、コード内のバグを見つけ出す(そして回避する)方がずっと簡単です。変数の半分は小文字で始まり、残りの半分は大文字で始まります。あなたはどちらの慣習をどのように使っているのか、どのように覚えています常に同じコンベンションを使用してみませんか? –
@JBNizetこれをより良い形式で改善します。ありがとうございます。私は覚えている。 – WhoAmI