小编ber*_*rto的帖子

AngularJS:如何观察服务变量?

我有服务,说:

factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) {
  var service = {
    foo: []
  };

  return service;
}]);
Run Code Online (Sandbox Code Playgroud)

我想foo用来控制用HTML呈现的列表:

<div ng-controller="FooCtrl">
  <div ng-repeat="item in foo">{{ item }}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

为了让控制器检测何时aService.foo更新,我将这个模式拼凑在一起,我将aService添加到控制器$scope,然后使用$scope.$watch():

function FooCtrl($scope, aService) {                                                                                                                              
  $scope.aService = aService;
  $scope.foo = aService.foo;

  $scope.$watch('aService.foo', function (newVal, oldVal, scope) {
    if(newVal) { 
      scope.foo = newVal;
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

这感觉很长,我一直在每个使用服务变量的控制器中重复它.有没有更好的方法来完成观察共享变量?

watch angularjs angular-services

409
推荐指数
9
解决办法
21万
查看次数

git中的分支描述,续

每当我在git中创建主题分支时,我一直在研究系统以保留BRANCH_DESCRIPTION文件.就像其他人提到的那样,我有时会忘记我为其创建的分支,尽管我试图给它一个描述性的名称.

我一直在处理SO问题如何告诉git总是选择我的本地版本来解决特定文件上的冲突合并?,但我遇到了一个不调用自定义合并驱动程序的情况,因此合并主题分支的文件会覆盖本地分支.例如:

git checkout master
echo "mainline" > BRANCH_DESCRIPTION
git add BRANCH_DESCRIPTION
git commit -m'Added BRANCH_DESCRIPTION file'
git checkout -b topic_branch
echo "this branch is used to fix the bug where [...]" > BRANCH_DESCRIPTION
git commit -m'Updated BRANCH_DESCRIPTION'
[code, code, code ...]
[git, git, git ...]
git checkout master
git merge --no-ff topic_branch
Run Code Online (Sandbox Code Playgroud)

此时BRANCH_DESCRIPTION将被覆盖,因为无论是否为文件设置了自定义合并驱动程序,主分支的描述都没有改变.

有任何想法吗?

git branch task-tracking

3
推荐指数
1
解决办法
3680
查看次数

标签 统计

angular-services ×1

angularjs ×1

branch ×1

git ×1

task-tracking ×1

watch ×1