如何调试此angularjs错误?

时间:2014-07-27 15:25:26

标签: wordpress angularjs debugging

我正在使用Linux Mint 17计算机上的Wordpress和Angularjs项目。

我设法在我的开发机器上正确安装项目,一切正常。

然而,我刚刚在我的笔记本电脑上使用git clone从我在工作中使用的同一个回购中完成安装。一切都显得很好,但是当我尝试加载某个页面时,它没有正确显示。所以我看看Chrome开发者工具控制台,它就是这样说的:

Error: [$parse:syntax] http://errors.angularjs.org/1.2.16/$parse/syntax?p0=%3F&p1=not%20a%20primary%20expression&p2=60&p3=%7BlineNumbers%3AshowLn%2C%20mode%3A'plaintext'%2C"<div class="CodeMirror cm-s-default ng-pristine ng-valid" ui-codemirror-opts="{lineNumbers:showLn, mode:'plaintext', onLoad:configEditor<?if(!$can_write):?>"nLoad%3AconfigEditor%3C%3Fif(!%can_write)%3A%3F%3E%2C%20readOnly%3A'nocursor'%3C%3Fendif%3B%3F%3E%7D&p4=%3Fif(!%can_write)%3A%3F%3E%2C%20readOnly%3A'nocursor'%3C%3Fendif%3B%3F%3E%7D
    at Error (native)
    at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:6:450
    at $a.throwError (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:165:141)
    at $a.primary (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:164:330)
    at $a.unary (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:171:73)
    at $a.multiplicative (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:170:310)
    at $a.additive (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:170:170)
    at $a.relational (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:170:34)
    at $a.relational (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:170:111)
    at $a.equality (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:169:397)

我对Angularjs很新,所以我真的不知道问题是什么或者如何调试它。

另外,奇怪的是我使用的是与我在工作中使用完全相同的代码(git clone),它工作得很好。那可能是我没有正确安装的东西?浏览器不兼容?

我已经安装了Chrome扩展程序Batarang,但没有发现它有用(或者不知道如何正确使用它)。

更新 错误似乎在这里:

<form class="contenido-evento">
    <textarea ui-codemirror="{lineNumbers:showLn, mode:'plaintext', onLoad:configEditor<?if(!$can_write):?>, readOnly:'nocursor'<?endif;?>}"
              ng-model="evento.texto"></textarea>
</form>

这是错误消息:

Error: [$parse:syntax] Syntax Error: Token '?' not a primary expression at column 60 of the expression [{lineNumbers:showLn, mode:'plaintext', onLoad:configEditor<?if(!$can_write):?>, readOnly:'nocursor'<?endif;?>}] starting at [?if(!$can_write):?>, readOnly:'nocursor'<?endif;?>}].

知道问题是什么吗?

2 个答案:

答案 0 :(得分:1)

在浏览器中复制粘贴错误的第一行(即http链接),它会带你到errors.angularjs.org并在那里你可以看到确切的错误

  

http://errors.angularjs.org/1.2.16/ $解析/语法P0 =%3F&安培; P1 =未%20A%20primary%20expression&安培; P2 = 60安培; P3 =%7BlineNumbers%3AshowLn%2C%20mode%3A&#39;明文&#39 ;%2C&#34;&#34; n载入%3AconfigEditor%3C%3Fif(%can_write!)%3A%3F%3E%2C%20readOnly%3A&#39; nocursor&#39;%3C%3Fendif%3B%3F% 3E%7D&安培; P4 =%3Fif(!%can_write)%3A%3F%3E%2C%20readOnly%3A&#39; nocursor&#39;%3C%3Fendif%3B%3F%3E%7D

这种情况下的错误是

  

语法错误:令牌&#39; {0}&#39;表达式[{3}]的第{2}列{1}   从[{4}]开始。

我不知道上面的错误究竟是什么,但这就是我开始调试错误的方法......

答案 1 :(得分:0)

最后,我设法通过添加php来解决此问题。像这样:

<textarea ui-codemirror="{lineNumbers:showLn, mode:'plaintext', onLoad:configEditor<?php if(!$can_write):?>, readOnly:'nocursor'<?php endif;?>}"
    >
</textarea>