2017-09-25 60 views
0

我希望我的視圖在我的服務中將新值傳遞給控制器​​時進行更新。AngularJS - 更新服務數據更改視圖

service.js

function navigationTreeService($http, $q, perspectivesService) { 
    return { 
    getExtension: getExtension 
    }; 

    function getExtension(){ 
     return extension; 
    } 
    function setExtension(value){ 
    extension = value; 
    } 
// 
    } 

controller.ts

angular.module('myModule').controller('ViewController', 
    ['$scope', '$rootScope', 'userSessionService', 'navigationTreeService', '$http', 
     function ($scope, $rootScope, userSessionService, navigationTreeService, $http) { 
     'use strict'; 

     $scope.extensionNavi = navigationTreeService.getExtension(); 
}]); 

view.html

<div class="extensionNavi" style="height: 50px; width: 400px;"> 
      {{extensionNavi}} 
</div> 

下面的代碼只有一次更新的觀點,我希望它被更新一次時間爲service.js中的擴展設置了一個新值。我怎樣才能做到這一點? 在此先感謝。

回答

0

服務不提供像控制器一樣的雙向綁定。您將需要$觀看您的值或使用this method來獲取和設置值。

0

如果您與控制服務價值,嘗試使用對象,如:

function navigationTreeService($http, $q, perspectivesService) { 
    var model = {extension: undefined}; 

    function getExtension() { 
     return model.extension; 
    } 

    function setExtension (value) { 
      model.extension = value; 
    } 
    return { 
      getExtension:getExtension 
    }; 
}