AngularJS指令报错:SyntaxError意外令牌,自定义简单指令无法运行
嘿,我来帮你排查这个问题!
你遇到的语法错误大概率是标点符号的问题——很可能是replace:false这一行末尾的逗号不小心打成了中文逗号(,),而不是英文逗号(,)。JS解析器不认中文标点,所以会直接报错指向这一行。
另外给你两个实用小提示:
- AngularJS的指令命名有规范:JS里用驼峰式(比如你写的
HelloWorld),但在HTML里使用时要改成短横线分隔的小写形式(hello-world),这个虽然不是当前语法错误的原因,但提前注意能避免后续指令不生效的问题。 - 还有个重要的点:
replace属性在AngularJS 1.3版本之后就被标记为废弃了,虽然1.x系列还能兼容使用,但如果是新项目的话,建议尽量不要用它,改用template/templateUrl配合合理的DOM结构来实现需求。
给你修正后的代码(确保所有标点都是英文的,并且格式更清晰):
(function() { "use strict"; var as = angular.module('my.directives',[]); as.directive('HelloWorld', function(){ return { restrict: 'AEC', replace: false, templateUrl: "assets/angular/app/organisations/partials/helloWorldTemplate.html" }; }); }());
内容的提问来源于stack exchange,提问作者456ty
相关产品推荐
相关产品推荐

