2016-12-27 105 views
2

我有一個視圖,用戶給出一個輸入並在另一個視圖中顯示它。一個控制器兩個視圖

視圖1:

<ion-content ng-controller="controller"> 
<input type="text" ng-model="name"> 
<button ng-click="save()">Save</button> 

控制器:

$scope.save = function() { 
    $scope.displayName = $scope.name; 
    $state.go('app.viewTwo'); 
} 

視圖2:

<ion-content ng-controller="controller"> 
{{displayName}} 
</ion-content> 

及其已知的,每當一個視圖被加載,所述控制器被新鮮每次初始化。那麼如何在另一個視圖中顯示第一個視圖的值。

回答

0

您需要使用servicefactory才能跨控制器使用變量。

DEMO:

var app = angular.module("clientApp", []) 
 
app.controller("TestCtrl", 
 
    function($scope,names) { 
 
    $scope.names =[]; 
 
    $scope.save= function(){ 
 
     names.add($scope.name); 
 
    } 
 
    
 
    $scope.getnames = function(){ 
 
    $scope.names = names.get(); 
 
    } 
 
    } 
 
); 
 
    
 
app.factory('names', function(){ 
 
    var names = {}; 
 

 
    names.list = []; 
 

 
    names.add = function(message){ 
 
    names.list.push({message}); 
 
    }; 
 
    
 
    names.get = function(){ 
 
    return names.list; 
 
    }; 
 

 
    return names; 
 
});
<!doctype html> 
 
<html > 
 

 
<head> 
 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app="clientApp"> 
 
    <div ng-controller="TestCtrl"> 
 
    <input type="text" ng-model="name"> 
 
    <button ng-click="save()" > save</button> 
 
    
 
    </div> 
 
    
 
    <div ng-init="getnames()" ng-controller="TestCtrl"> 
 
    <div ng-repeat="name in names"> 
 
     {{name}} 
 
     </div> 
 
     
 
    </div> 
 
</body> 
 

 
</html>

您還可以使用$ rootScope,但它不是一個推薦的方式。

+0

你能舉一個例子來更好地理解它@Sajeetharan – sree

+0

@sree是的等待我會加 – Sajeetharan

+0

謝謝@Sajeetharan – sree

相關問題