如何获取指令中模板url的html文件中定义的属性值

时间:2014-07-10 05:50:11

标签: angularjs angularjs-directive

以下是我的指示,

app.directive('search', function($rootScope, $timeout, dynamicValues) {
    return {
        scope: {
            myname: '=',
        },
        restrict: 'AE',
        replace: true,
        templateUrl: 'app/partials/template.html',
    };
}));

以下是我的template.html

<input type="text" name="Name" myname = "maho">

所以我的要求是我需要在我的指令中获取myname属性的值,即“maho”我使用Attr尝试如下

scope.variable = iAttrs.myname;
alert("myname value is..." + scope.variable);

但是我得到了未定义的值,请建议我如何做到这一点。

2 个答案:

答案 0 :(得分:1)

你先检查了attrs.myname值吗?

app.directive('search', function() {
  return {
    scope: {
      myname: '='
    },
    restrict: 'AE',
    replace: true,
    template: '<input type="text" name="Name" myname="maho">',
    link: function (scope, element, attrs) {
      console.log(attrs.myname);

      scope.variable = attrs.myname;
      console.log(scope.variable);
    }
  };
});

在某些页面上,

<search></search>

希望这有帮助。

答案 1 :(得分:0)

试试这个:

app.directive('search', function() {
    return {
        restrict: 'AE',
        replace: true,
        templateUrl: 'template.html',
        link: function(scope, elm, attrs) {
          scope.variable = attrs.myname;
        }

    };
});

隔离范围用于从父指令传递变量。 ngModel将元素的值绑定到范围变量。

egghead.io video regarding isolate scopes

docs for ngModel

DEMO