AngularJS - 更新服务数据更改视图

时间:2017-09-25 08:13:11

标签: angularjs typescript model-view

我希望我的视图在从我的服务传递给控制器​​的新值时更新。

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中的扩展设置新值时都要更新它。我怎样才能做到这一点? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

服务不像控制器那样提供双向绑定。您需要$观察您的值或使用this method来获取和设置值。

答案 1 :(得分:0)

如果您与控制器共享服务值,请尝试使用对象,例如:

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

    function getExtension () {
        return model.extension;
    }

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