自定义元素指令和属性

科林·普拉布(Collin Prabhu)

myPage.html

<div ng-controller="MyPageCtrl">
    <my-custom-directive arg1="{{currentObj.name}}"></my-custom-directive>
<div>

myPageCtrl.js(控制器)中

app.controller("MyPageCtrl", ["$scope", function ($scope) {
          $scope.currentObj = {"name":"Collin"};
    }]);

这就是我的指令代码的样子

app.directive("myCustomDirective", [function () {
    return {
        restrict: "E",
        controller: "MyCustomDirCtrl"
    };
}]);

最后是我指令的控制器

app.controller("MyCustomDirCtrl", ["$attrs", function ($attrs) {
      var arg = $attrs.arg1;
      alert('Arg '+arg);
}]);

该警报仅显示“ {{currentObj.name}}”,而不显示currentObj的name属性值。

请您为我提出解决方案的建议。

谢谢。

知识面

不知道为什么要使用$ attrs作为控制器。只需使用普通的$ scope即可。

myPage.html

<div ng-controller="MyPageCtrl">
    <my-custom-directive arg1="{{currentObj.name}}"></my-custom-directive>
<div>

myPageCtrl.js(控制器)

app.controller("MyPageCtrl", ["$scope", function ($scope) {
          $scope.currentObj = {"name":"Collin"};
    }]);

myCustomDirective

app.directive("myCustomDirective", [function () {
    return {
        restrict: "E",
        controller: "MyCustomDirCtrl"
    };
}]);

指令的控制器(此处将$ attrs更改为$ scope),

app.controller("MyCustomDirCtrl", ["$scope", function ($scope) {
      var arg = $scope.arg1;
      alert('Arg '+arg);
}]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章