Heim  >  Fragen und Antworten  >  Hauptteil

javascript - angular 指令里直接赋值是什么用法

假设我们自定义一个指令

angular.module.directive('sayHello', function(){
    return {
        restrict: 'A',
        ...
    }
})

偶然间看到过这样的写法

<p say-hello="sth"></p>

我记得一般都是在指令里指定scope选项,然后定义一个开头是=的内部属性,从DOM里把数据传递到指令指令里面.
请问直接在指令sayHello上赋值,那么controller里的$scope.sth会被传到指令里吗?

或者这种用法的原理是什么,求解答

PHP中文网PHP中文网2749 Tage vor363

Antworte allen(2)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-04-10 14:43:20

    directivelink中可以获得DOM属性值attrs
    想要监听attrs改变的话,可以自定义一个watch
    比如你这个

    angular.module.directive('sayHello', function(){
        return {
            restrict: 'A',
            link: function(scope, element, attrs) {
                scope.$watch(attrs.sayHello, function(value) {
                    console.log("say-hello", value);
                });
            }
        }
    })
    

    angularjs的Developer Guide里有介绍

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 14:43:20

    直接写=的话会。

    Antwort
    0
  • StornierenAntwort