javascript - 如何获取指令中的属性参数

标签 javascript angularjs

我有以下代码。我正在尝试注入(inject) name来自myController myObj 内的范围指令为 nameAttr属性。

我已分配 name: '=nameAttr'在指令的范围内,但它似乎不起作用。

我做错了什么?

https://plnkr.co/edit/qceVMl0w2gv03ZuQVQb8?p=preview

HTML

<my-obj nameAttr="name"></my-obj>

在“MY-OBJ.HTML”内部

<h2>{{ name }}</h2>
<ol>
  <li ng-repeat="(slug, val) in loop">{{ slug }} - {{ val }}</li>
</ol>

Angular

var mod = angular.module('myApp', []);

mod.controller('myController', myController).directive('myObj', myObject);

function myController($scope){
  $scope.name = 'John Smith';
}

function myObject(){
  return {
    restrict: 'E',
    templateUrl: 'my-obj.html',
    scope: {
      name: '=nameAttr'
    },
    controller: function($scope){
      $scope.loop = {
        'one': 'gfshfh',
        'two': '32435'
      };
    }
  };
}

最佳答案

在您的 index.html 中你需要写

<my-obj name-attr="name"></my-obj>

------------------^

DirectivescamelCase名称必须写为 camel-case在您的模板中

关于javascript - 如何获取指令中的属性参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336756/

相关文章:

javascript - 使用 css() 设置背景图像不起作用

javascript - 无法将 Debounce ES5 转换为 ES6

javascript - AngularJS 和 typescript 广播

angularjs - 如何通过单击按钮从表中删除整行?

javascript - 必需的字符串参数 'text' 不存在

javascript - 脚本无法定位图像并返回新图像 : undefined

javascript - 车牌格式化和验证

javascript - 将模拟 $state 注入(inject) Angular 单元测试

javascript - setTimeout 如何在下面的时钟代码中像 setInterval 一样工作,甚至 setTimeout 只执行一次?

javascript - Yeoman - 当前使用 AngularJS 和 Express 的最佳方式?