Javascript AngularJS将URN传递给参数时抛出错误

Javascript AngularJS将URN传递给参数时抛出错误,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,在我的AngularJS/Ionic应用程序中,我正在编写一个指令,该指令的元素包含一个JSON模式URN的自定义参数。问题是AngularJS试图将此URN作为表达式进行计算 <myDirective myAttr="urn:jsonschema:net:example:net:myschema"></myDirective> 错误: Error: [$parse:syntax] http://errors.angularjs.org/1.2.25/$parse/

在我的AngularJS/Ionic应用程序中,我正在编写一个指令,该指令的元素包含一个JSON模式URN的自定义参数。问题是AngularJS试图将此URN作为表达式进行计算

<myDirective myAttr="urn:jsonschema:net:example:net:myschema"></myDirective>

错误:

Error: [$parse:syntax] http://errors.angularjs.org/1.2.25/$parse/syntax?p0=%3A&p1=is%20an%20unexpected%20token&p2=4&p3=urn%3Ajsonschema%3Anet%3Aexample%3Anet%3Amyschema&p4=%3Ajsonschema%3Anet%3Aexample%3Anet%3Amyschema
    at Error (native)
    at http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:37:450
    at fb.throwError (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:200:227)
    at fb.parse (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:199:82)
    at $get (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:130:31)
    at h (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:136:163)
    at k.$get.k.$watch (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:137:444)
    at linker (http://localhost:8000/app/www/js/directives.js:8:15)
    at http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:95:293
    at N (http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:85:372) <jsonform schema="urn:jsonschema:net:example:net:myschema"> ionic.bundle.min.js:123(anonymous function) ionic.bundle.min.js:123$get ionic.bundle.min.js:99N ionic.bundle.min.js:85g ionic.bundle.min.js:78g ionic.bundle.min.js:78N ionic.bundle.min.js:85g ionic.bundle.min.js:78N ionic.bundle.min.js:85g ionic.bundle.min.js:78(anonymous function) ionic.bundle.min.js:77d ionic.bundle.min.js:345u.directive.a.compile ionic.bundle.min.js:345N ionic.bundle.min.js:85g ionic.bundle.min.js:78N ionic.bundle.min.js:85g ionic.bundle.min.js:78N ionic.bundle.min.js:85g ionic.bundle.min.js:78(anonymous function) ionic.bundle.min.js:77d ionic.bundle.min.js:345u.directive.a.compile.b ionic.bundle.min.js:345$get.k.$broadcast ionic.bundle.min.js:145v.transitionTo.v.transition.N.then.v.transition.v.transition ionic.bundle.min.js:321l.promise.then.E ionic.bundle.min.js:131(anonymous function) ionic.bundle.min.js:132$get.k.$eval ionic.bundle.min.js:143$get.k.$digest ionic.bundle.min.js:140$get.k.$apply ionic.bundle.min.js:143h ionic.bundle.min.js:103u ionic.bundle.min.js:108w.onreadystatechange ionic.bundle.min.js:110XMLHttpRequest.send (async)b ionic.bundle.min.js:110s ionic.bundle.min.js:105$get.f ionic.bundle.min.js:102l.promise.then.E ionic.bundle.min.js:131l.promise.then.E ionic.bundle.min.js:131(anonymous function) ionic.bundle.min.js:132$get.k.$eval ionic.bundle.min.js:143$get.k.$digest ionic.bundle.min.js:140$get.k.$apply ionic.bundle.min.js:143(anonymous function) ionic.bundle.min.js:49d ionic.bundle.min.js:66c ionic.bundle.min.js:49fc ionic.bundle.min.js:49Xc ionic.bundle.min.js:48(anonymous function) ionic.bundle.min.js:245a ionic.bundle.min.js:176(anonymous function) ionic.bundle.min.js:62r ionic.bundle.min.js:38c ionic.bundle.min.js:62
错误:[$parse:syntax]http://errors.angularjs.org/1.2.25/$parse/syntax?p0=%3A&p1=是%20an%20意外的%20token&p2=4&p3=urn%3Ajsonschema%3Anet%3Amyschema示例%3Anet%3Amyschema&p4=%3Ajsonschema%3Anet%3A示例%3Anet%3Amyschema
错误(本机)
在http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:37:450
投手(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:200:227)
在fb.parse(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:199:82)
以$get(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:130:31)
在h(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:136:163)
在k$get.k$watch(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:137:444)
at链接器(http://localhost:8000/app/www/js/directives.js:8:15)
在http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:95:293
在N(http://localhost:8000/app/www/lib/ionic/js/ionic.bundle.min.js:85:372)ionic.bundle.min.js:123(匿名函数)ionic.bundle.min.js:123$get-ionic.bundle.min.js:99N-ionic.bundle.min.js:85g-ionic.bundle.min.js:78g-ionic.bundle.min.js:85g-ionic.bundle.min.js:78(匿名函数)ionic.bundle.min.js:77d ionic.bundle.min.js:345u.directive.a.编译ionic.bundle.min.js:345N ionic.bundle.min.js:85g ionic.bundle.min.js:78G ionic.bundle.min.js:85g ionic.bundle.min.js:78(匿名函数)ionic.bundle.min.js:77d ionic.bundle.min.js:345u.directive.a.compile.b ionic.bundle.min.js:345$get.k.$broadcast ionic.bundle.min.js:145v.transition.v.transition.transition.N.then.v.transition.v.v.transition.v.transition ionic.bundle.min.js:321l.promise.then.E ionic.bundle.minionic.bundle.min.js:132$get.k.$eval ionic.bundle.min.js:143$get.k.$digest ionic.bundle.min.js:140$get.k.$apply ionic.bundle.min.js:143h ionic.bundle.min.js:103u ionic.bundle.min.js:108w.onreadystatechange ionic.bundle.min.js:110XMLHttpRequest.send(异步)离子束min.js:110s离子束min.js:105$get.f离子束min.js:102l.promise.E离子束min.js:131l.promise.then.E离子束min.js:131(匿名函数)离子束min.js:132$get.k$eval离子束min.js:143$get.k$digest离子束min.js:140$get.k$apply离子束min.js:143(匿名函数)ionic.bundle.min.js:49d ionic.bundle.min.js:66c ionic.bundle.min.js:49fc ionic.bundle.min.js:48(匿名函数)ionic.bundle.min.js:245a ionic.bundle.min.js:176(匿名函数)ionic.bundle.min.js:62r ionic.bundle.min.js:38c ionic.bundle.min.js:62
如何阻止AngularJS解析我的属性

编辑:将属性名称从schema更改为myAttr,因为schema是保留的。导致相同的错误。

使用text@binding:

app.directive('myDirective', function () {
    return {
      restrict: 'E',
      scope: {
          myAttr: "@"
       },
       link: function (scope) {
          console.log(scope.myAttr);
        }
      };
    }
);
html:



plunker:

schema
是一个表达式(好像它是用
{
}
包装的),不是字符串,所以使用
schema=“'urn:jsonschema:net:example:net:myschema'”
更改了属性名称。导致相同的错误。为什么-1?:(我不希望有一个简单的基于属性的指令。我希望有一个基于元素的指令,它有额外的属性,正如你在我的第一个片段中看到的那样。
<my-directive my-attr="urn:jsonschema:net:example:net:myschema"></my-directive>