簡體   English   中英

更改指令中的范圍值

[英]Change a scope value in directive

什么是通過指令分配新值的最佳方法? 雙向數據綁定。

我在這里嘗試了一個小提琴。 http://jsfiddle.net/user1572526/grLfD/2/ 但它不起作用。

我的指示:

myApp.directive('highlighter', function () {
    return {
        restrict: 'A',
        replace: true,
               scope: {
                    activeInput: '='
                },
        link: function (scope, element, attrs) {
            element.bind('click', function () {
                scope.activeInput = attrs.setInput 
            })
        }
    }
});

而我的控制器:

function MyCtrl($scope) {
             $scope.active = {
                value : true
            };
}

我的觀點是:

<h1 highlighter active-input="active.value" set-input="false">Click me to update Value in scope: {{active}}</h1>

所以我想做的是使用給定的屬性setInput更新scope.active。

我在這里做錯了什么想法?

使用element.bind你可以離開Angular的領域,所以你需要告訴Angular發生了什么。 您可以使用scope.$apply執行此操作scope.$apply function:

scope.$apply(function(){
  scope.activeInput = attrs.setInput;
});

這是一個更新的jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM