当我们尝试区分字符串时,Angular中的$ Watch无效

时间:2014-12-14 09:26:42

标签: javascript angularjs watch

我有一个AngularJs应用程序,我在服务上创建了手表。

我在标签上有一个手表,每次点击我都在检查是否是第二个标签被选中。如果它是第二个标签我正在做一些逻辑。

 $scope.$watch('service.currentTab.getIndex() === 1', function (newValue, oldValue) {
        if (newValue !== oldValue) {
            if (newValue === true) {
               DO SOME LOGIC
            }
        }
    });

它工作正常。

然而,在我看来,它并不优雅。如果将来有人会在第二个位置添加一个选项卡而不是此选项卡,那么我的逻辑就会毁了。

为了解决这个问题,我添加了enums.js文件:

var TabEnum = {
PAPERS: "PAPERS",
TELEPHONE: "TELEPHONE",
CELLPHONE: "CELLPHONE",
}; 

我的手表改为:

$scope.$watch('service.getCurrentTabName() === TabEnum.TELEPHONE', function (newValue, oldValue) {
        if (newValue !== oldValue) {
            DO SOME LOGIC
        }
    });

Service.js:

app.service('service', [
function () {
this.getCurrentTabName = function(){
        var currentTab = this.currentTab;
        var currentTabName = currentTab.getTabName();
        return currentTabName;
    };
     }
 ]);

为什么短语

$scope.$watch('service.getCurrentTabName() === TabEnum.TELEPHONE'

不工作?

0 个答案:

没有答案