Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 指令和范围@_Angularjs_Scope_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Angularjs 指令和范围@

Angularjs 指令和范围@,angularjs,scope,angularjs-directive,angularjs-scope,Angularjs,Scope,Angularjs Directive,Angularjs Scope,我正在学习angularjs指令中的scope选项,但我不明白为什么@不起作用。你可以检查代码。问题在于,第二个h4标签应该在应用程序中显示I'm a指令。。但它显示的是Hello world。任何帮助都很好,谢谢 <div ng-controller="MainCtrl"> <div ng-init="title = 'Hello World'"> <h2 id="appTitle">{{title}}</h2> <bu

我正在学习angularjs指令中的scope选项,但我不明白为什么@不起作用。你可以检查代码。问题在于,第二个h4标签应该在应用程序中显示I'm a指令。。但它显示的是Hello world。任何帮助都很好,谢谢

<div ng-controller="MainCtrl">
<div ng-init="title = 'Hello World'">
     <h2 id="appTitle">{{title}}</h2>

    <button id="newAppTitle" ng-click="setAppTitle('App 2.0')">Upgrade me!</button>
    <div my-scoped-directive msd-title="I'm a directive, within the app {{title}}">
         <h4 id="directiveTitle">{{title}}</h4>

        <button id="newDirTitle" ng-click="setDirectiveTitle('bob')">Bob it!</button>
    </div>
</div>

我在这里从模板中删除了属性“ng transclude”,如果它为您指明了正确的方向。@gerl Bad fiddle,不是吗?
var app = angular.module('mainModule', []);

app.controller('MainCtrl', function ($scope) {
    $scope.setAppTitle = function (title) {
        $scope.title = title;
    };
});


app.directive('myScopedDirective', function () {
    return {
        scope: {
            'title': '@msdTitle'
        },
        link: function ($scope, $element, $attrs) {
            $scope.setDirectiveTitle = function (title) {
                $scope.title = title;
            };
        }
    };
});