AngularJs - 使用父范围变量W / Isolate范围的指令

时间:2015-10-27 21:57:15

标签: javascript angularjs

我甚至不知道在这一点上要问什么(编辑:我已经被告知我的问题不清楚"为什么指令看到的属性没有通过对它"),我以为我明白了。似乎不能在指令中使用父控制器的属性(是的,它们确实需要是可选的,但我不认为这是问题)。

我以为我创建了一个隔离范围:scope: {myVar: "=?"}然后只需创建一个myVar属性并将其指向" source"在父控制器上。我究竟做错了什么?

小提琴:http://jsfiddle.net/x0mukxdd/

HTML:

<my-directive isDisabledDirectiveVar = "isDisabledOuterVar" insideDirectiveTestString = "someTestString" />

JS:

var app = angular.module("myApp", []);
app.controller("myController", function ($scope) {
    $scope.isDisabledOuterVar = true;
    $scope.someTestString = 'blahblah I am a astring';
});

app.directive("myDirective", function () {
    return {
        restrict: 'E',
        scope: {
            isDisabledDirectiveVar: '=?',
            insideDirectiveTestString: '=?'
        },
        template: '<input type = "text" ng-disabled= "isDisabledDirectiveVar"' +
            'value = "{{insideTestString}}" ></input>'
    };
});

旁注,参考文章here.

1 个答案:

答案 0 :(得分:3)

Angular在javascript中使用camelCase,但是在HTML中将其转换为破折号。

html:<my-directive is-disabled-directive-var="yourVar" />

javascript:scope: { isDisabledDirectiveVar: '=?' }

更新示例: http://jsfiddle.net/x0mukxdd/2/