在我的離子應用上,我有一個按鈕的視圖。當你點擊這個按鈕時,一個玩家列表將以模式被提供,當點擊一個玩家的名字時,所選擇的玩家的名字應該被顯示在頁面上,並且該按鈕應該被隱藏。 下面是codepen的相同 - http://codepen.io/mradul/pen/vNywqG 然而,當我在模態上選擇一個值(玩家名稱)時,範圍變量被更新(因爲它打印在控制檯上),但是更改不會反映在頁面上。 HTML -
<ion-header-bar class="bar-positive bar-header">
<h1 class="title">Selected Player</h1>
</ion-header-bar>
<ion-content>
<script id="select-player.html" type="text/ng-template">
<div class="modal">
<ion-header-bar>
<h1 class="title">Choose Player</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item ng-repeat="player in getPlayerList().players" ng-click="closeModal(player)">
{{player}}
</ion-item>
</ion-list>
</ion-content>
</div>
</script>
<br/><br/>
<div id="player">
{{sc.player}}
<div class="row">
<a class="button" ng-click="openModal()" ng-show="sc.player.playerName == null">Set player</a>
<div ng-hide="sc.player.playerName == null">
<div class="col col-33 " > {{sc.player.playerName}}</div>
</div>
</ion-content>
JS -
angular.module('ionicApp',['ionic']).controller('scoringController', function ($scope, $ionicModal) {
$scope.player = {playerName:""};
$scope.getPlayerList = function() {
console.log("getting player list");
return {
"players": [
"Mradul",
"JAin",
"Phunsuk Wangdu",
"Hulk"
]
};
};
$ionicModal.fromTemplateUrl('select-player.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.modal = modal
})
$scope.openModal = function() {
console.log("Setting model open ");
$scope.modal.show()
}
$scope.closeModal = function (playerName) {
$scope.player.playerName = playerName;
//$scope.activePlayers[0] = playerName;
console.log("Player Set ", $scope);
console.log("model closed");
$scope.modal.hide();
};
$scope.$on('$destroy', function() {
$scope.modal.remove();
});
});
玩家最初是一個原始(字符串),但我通過擁有一個屬性 - playerName將其改變爲一個對象。可能是我沒有做對。請建議如何正確更新父範圍變量。我可能錯過了一些非常基本的東西。您更改後
它的工作。我在html代碼的頂部有這樣一行代碼 -,它並未顯示在問題中。我已經把別名作爲控制器。所以試圖使用sc.variableName訪問範圍變量。我想我只是擺脫'作爲sc'。非常感謝。 –
exe