如何在angularJS中的mvc中使用@语法来表示隔离范围

时间:2016-05-12 12:42:06

标签: angularjs model-view-controller

在下面的代码中,当我运行应用程序时,它显示错误:

  

消息:“”',“在代码块的开头无效。仅   标识符,关键字,注释,“(”和“{”有效。

由于@语法而导致范围内。这不起作用。 我正在mvc中实现此应用程序,此代码在视图页面上而不是.js文件中。

@语法在这里被视为Rajor,因为上面的错误正在生成..

var appmodule = angular.module('myapp', []);

appmodule.controller('myController', function ($scope) {

    $scope.name = "title1";

    //$scope.reverseName = function () {
    //    $scope.name = $scope.name.split('').reverse().join('');
    //};
});

appmodule.directive('myDir', function () {

    return {
        restrict: 'E',
        template: "<div>Your name is : {{name}}</div>"+
    "Change your name : <input type='text' ng-model='name' />"
        ,
        scope: {
            name: '@', // THIS LINE
        },
    }
});

1 个答案:

答案 0 :(得分:0)

你必须将属性的名称放在camel case中,其中angular应绑定值

 scope: {
        name: '@thisIsALongName', // THIS LINE

    },

所以在HTML中:

<my-dir this-is-a-long-name="{{user.lastname}}"></my-dir>

正如评论中所述编辑:如果您不确切,则属性名称name:'@'name:'@name'

相同