搜尋

首頁  >  問答  >  主體

angular.js - 關於angularjs中自訂filter的問題

剛剛在看angularjs的todoMVC項目,發現它在控制器中自訂了一個過濾器

$scope.$watch('TC.location.path()',function (path) {
            TC.Filters = {'/active':{completed: false},'/completed':{completed:true}}[path];
        });

之後在視圖中

<li ng-repeat="todo in TC.todos | filter:TC.Filters track by $index" ng-class="{completed: todo.completed, editing: todo === TC.editedTodo}">

我的問題主要是第一段程式碼這種寫法不了解

function (path) {
            TC.Filters = {'/active':{completed: false},'/completed':{completed:true}}[path];
        }

這個方法中傳入path後根據path選擇不同的過濾器。

我想問有沒有文件是介紹這種在過濾器物件內選擇的寫法的。

大家讲道理大家讲道理2758 天前531

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-05-15 17:00:57

    雖然樓上已經給了原因,但是估計你也不太明白,給你個文檔,看看什麼是$watch吧,文檔在這裡。

    回覆
    0
  • 阿神

    阿神2017-05-15 17:00:57

    $scope.$watch('TC.location.path()',function (path) {
        TC.Filters = {'/active':{completed: false},'/completed':{completed:true}}[path];
    });
    

    這裡監聽了路徑的變化,當路徑變化了filter的參數也隨之變化了。其實就是completed和active資料的切換

    回覆
    0
  • 取消回覆