AngularJsの2つの異なるコントローラ間で通信しようとしています。私が達成したい目標は、私が設定したデフォルト値ではなく、ユーザーがドロップダウンして最初のコントローラで変数の値を使用することです。残念なことに第2コントローラは第2コントローラのvariableのデフォルト値を使用していました。AngularJsで実行されているコントローラ1の特定の機能の後に初めてコントローラから2番目のコントローラを呼び出す方法
私はAngularの初心者ですので、正しく表現されていないと思ったら私を許してください。私はデータ科学のバックグラウンドです。 は、ここで私は
<script>
var app = angular.module("BuildApp", []);
app.run(function ($rootScope) {
$rootScope.$on('scope.stored', function (event, data) {
console.log("scope.stored", data);
});
});
app.controller("BranchController", function ($scope, $http, Scopes) {
Scopes.store('BranchController', $scope);
$http.get('http://192.168.3.96:8082/engine-api/1.1/builds/getbranch').
success(function (data, status, headers, config) {
$scope.branchs = data;
}).
error(function (data, status, headers, config) {
console.log('Api call failed', status)
});
$scope.selectedBranch = 'Nothing Selected';
$scope.dropboxitemselectedbranch = function (item) {
$scope.selectedBranch = item;
}
});
app.controller("KitController", function ($scope, $http, Scopes) {
Scopes.store('KitController', $scope);
var url = 'http://192.168.3.96:8082/engine-api/1.1/builds/getkit?Branch=' + Scopes.get("BranchController").selectedBranch;
console.log(url)
$http.get(url).
success(function (data, status, headers, config) {
$scope.kits = data;
}).
error(function (data, status, headers, config) {
console.log('Api call failed', status)
});
$scope.selectedKit = "Nothing Selected";
$scope.dropboxitemselectedkit = function (item) {
$scope.selectedKit = item;
}
});
app.factory('Scopes', function ($rootScope) {
var mem = {};
return {
store: function (key, value) {
mem[key] = value;
},
get: function (key) {
return mem[key];
}
};
});
</script>
を使用していたコードやバグを回避するために
<body ng-app="BuildApp">
<h1>Branch</h1>
<div ng-controller="BranchController">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> {{selectedBranch}}
<span class="caret"></span></button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1" >
<li ng-repeat="branch in branchs"><branch ng-click = "dropboxitemselectedbranch(branch.name)"> {{branch.name}} </branch></li>
</ul>
</div>
</div>
<h1>Kit</h1>
<div ng-controller="KitController">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> {{selectedKit}}
<span class="caret"></span></button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2" >
<li ng-repeat="kit in kits"><kit ng-click = "dropboxitemselectedkit(kit.name)">{{kit.name}}</kit></li>
</ul>
</div>
</div>
</body>