私は何かに悩まされています(私は同様の質問を読んできましたが、どれも解決策にはなりません)。 私は2つのDOM要素を持っています(実際には2つの異なるページを持っていますが、同じことが基本的な例です)。
<div id="layer1" ng-controller="appCtrl">
<select ng-model="selectedType" ng-options="type.label for type in ptype track by type.value" ng-change="changeType(selectedType.value)"></select>
</div>
<div id="layer2" ng-controller="appCtrl">
<select ng-model="selectedType" ng-options="type.label for type in ptype track by type.value" ng-change="changeType(selectedType.value)"></select>
</div>
とJS
でvar myAppModule = angular.module('myApp', [])
.factory('selectedType', function(){
return{}
})
.controller('appCtrl', ['$scope',function($scope){
$scope.ptype = [
{
value: 1,
label:'Kg'
},
{
value: 2,
label:'Pza'
}];
selectedType = $scope.ptype[0];
$scope.changeType = function(value){
if(value==1){selectedType = $scope.ptype[0];}
else{selectedType=$scope.ptype[1];}
};
}])
あなたは私が必要なもの、私はSELECTとNG-モデルのオプションを持って見ることができるように任意のSELECTで選択した値を変更したときである(ありませんDIVがどちらの問題を更新するか)。
ここにコードSEE HEREを持つプランカ。 ありがとう!
各 'ng-controller 'が' AppCtrl'の新しい独立したインスタンスであることを認識していません。サービスを使用して異なるコントローラ間でデータを共有するか、同じインスタンスかそれほど望ましくないアプローチを維持することは、親から継承する両方のインスタンスをカプセル化する親コントローラに '$ scope.ptype'宣言を移動します – charlietfl