我有一个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'
不工作?