我有一个我在多个地方使用的指令,但是在一个指令中我需要匹配一个值来显示某些元素。以下对我不起作用。
<my-directive attr="my.value"></my-directive>
并在指令
内<div ng-show="attr == 'my.value'"> Hello world </div>
指令:
'use strict';
module.exports = Directive;
function Directive(){
return {
restrict: 'E',
templateUrl: 'directive.html',
scope: {
attr: '='
}
}
}
我做错了什么?
答案 0 :(得分:0)
您使用的表达式会检查attr
范围是否等于string
'my.value'。
如果你想检查它是否等于my.value
的值,你必须这样使用它。
<div ng-show="attr == my.value"> Hello world </div>
答案 1 :(得分:0)
你必须做这样的事情
https://jsfiddle.net/pdhm98s3/6/
<div ng-app="miniapp">
<div ng-controller="myController">
<my-directive attr="my.value"></my-directive>
</div>
</div>
var app = angular.module('miniapp', []);
app.directive("myDirective", function() {
return {
"restrict": "E",
"replace": true,
"scope": {
"myValue": "=attr"
},
"template": '<div ng-show="myValue"> Hello world </div>'
}
})
app.controller("myController", function($scope) {
$scope.my = {
"value": 1
}
})
通过将控制器中的值更改为1和0来测试它
答案 2 :(得分:0)
你可以尝试“@”来绑定它适用于我的指令中的值
'use strict';
module.exports = Directive;
function Directive(){
return {
restrict: 'E',
templateUrl: 'directive.html',
scope: {
attr: '@'
}
}
}