【问题标题】:How to use @ syntax in mvc in angularJS for isolate scope如何在angularJS中的mvc中使用@语法来隔离范围
【发布时间】:2016-05-12 12:42:06
【问题描述】:

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

消息:""'," 在代码块的开头无效。仅 标识符、关键字、cmets、"(" 和 "{" 都是有效的。

由于@ 语法在范围内。这不起作用。 我在 mvc 中实现这个应用程序,这个代码在 viewpage 上而不是在.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
        },
    }
});

【问题讨论】:

  • 我认为你想使用 '=' 而不是 '@'(2 向绑定)

标签: angularjs model-view-controller


【解决方案1】:

你必须将属性的名称放在驼峰式大小写中,角度应该绑定值

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

    },

所以在 HTML 中:

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

如评论中所述编辑:如果您不精确,属性名称 name:'@'name:'@name' 相同

【讨论】:

  • 这不是真的。如果您不指定属性名称,它只是尝试绑定到与变量相同的名称,在本例中为 'name'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多