如何在指令的模板部分设置id的值?

时间:2014-09-10 08:19:06

标签: angularjs angularjs-directive

我正在尝试这个:

http://plnkr.co/edit/IzhScWwcy6owjsPKm2Fs?p=preview

<!doctype html>
<html ng-app="plunker" >
<head>
  <meta charset="utf-8">
  <title>AngularJS Plunker</title>
  <link rel="stylesheet" href="style.css">
  <script>document.write("<base href=\"" + document.location + "\" />");</script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
    xx<div admin-select
      admin-id="examType"></div>xx
</body>
</html>

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

});

app.directive("adminSelect", function () {
    return {
        restrict: 'A',
        require: 'ngModel',
        scope: {
            adminId: '=adminId'
        },
        template: '<div id="{{adminId}}"></div>'
    };
}); 

这不起作用,我看不出原因。有人可以给我一些建议,并帮助我设置模板中<div>的ID。

2 个答案:

答案 0 :(得分:0)

您必须将admin-id属性的值放在撇号下,因为您要设置值。 Example

<div admin-select admin-id="'examType'"></div>

否则,您在控制器中设置范围变量,并将此变量传递给指令:

app.controller('MainCtrl', function($scope) {
    $scope.myId = 'examType'
});

<div admin-select admin-id="myId"></div>

Example

答案 1 :(得分:0)

template: '<div id="{{$parent.adminId}}"></div>'

Angular的文档有这个“模板的根总是得到一个新的范围。”,也许这就是原因。

<强> Upddated

这个答案不起作用...... =)