Javascript 角度指令属性会导致错误
我正在尝试编写一个angular指令来生成传入属性的子字符串。下面是我的代码: HTML: 但这只会导致我在link函数中所做的子字符串被忽略 为什么会出错?Angular没有将引号中的内容视为字符串,而是尝试解析出一些命令吗?最重要的是,我如何解决这个问题Javascript 角度指令属性会导致错误,javascript,angularjs,Javascript,Angularjs,我正在尝试编写一个angular指令来生成传入属性的子字符串。下面是我的代码: HTML: 但这只会导致我在link函数中所做的子字符串被忽略 为什么会出错?Angular没有将引号中的内容视为字符串,而是尝试解析出一些命令吗?最重要的是,我如何解决这个问题 谢谢只需使用@进行文本绑定,其余代码就可以完美工作 工作示例: var-app=angular.module('myapp',[]); 应用程序控制器('MainCtrl',函数($scope){ }); app.directive('s
谢谢只需使用
@
进行文本绑定,其余代码就可以完美工作
工作示例:
var-app=angular.module('myapp',[]);
应用程序控制器('MainCtrl',函数($scope){
});
app.directive('substring',function(){
返回{
限制:“AE”,
替换:正确,
范围:{
信息:“@”
},
链接:功能(范围、要素、属性){
//警报(属性消息);
var str=attrs.message;
scope.text=str.substring(1,4);
},
模板:“{text}}”
};
});代码>
JS-Bin
请输入错误。或者,如果有可能,在JSFIDLE或任何其他类似文件上复制错误tool@jcvegan-我一直试图发布错误,但是Stackoverflow阻止了我的问题,说错误是错误的代码格式。你知道这件事吗?你试过用单引号写你的信息吗message=“‘这也是’”
@Dave您正在使用attrs.message访问文本。你为什么需要定义新的范围?@cem我不知道你的意思。这是我第一次编写指令(对Angular来说还是新的)。我遵循的例子就是这样做的。我尝试删除自定义范围,但在两个点中仅使用最后一个值的指令时遇到问题。你能详细解释一下你的意思吗?谢谢你的帮助。你能解释一下在指令中使用“@”和“=”的区别吗?我仍然不知道什么时候应该使用其中一种。
<body ng-controller="MainCtrl">
<div><substring message="This is a test."></substring></div>
<div><substring message="So is this." ></substring></div>
</body>
var app = angular.module('myapp', []);
app.controller('MainCtrl', function($scope) {
});
app.directive('substring', function () {
return {
restrict: 'AE',
replace: true,
scope: { text: '=message' },
link: function (scope, elem, attrs) {
//alert(attrs.message);
var str = attrs.message;
scope.text = str.substring(1, 4);
},
template: '<H1>{{text}}</H1>'
};
});
'=message' to '@message'