在browserLink上无法识别的表达式

时间:2016-02-01 11:17:55

标签: jquery html angularjs visual-studio browser-link

我对"有些错误browserLink" 见下文

<div ng-show="optList.editing && optList.BANKRUPT_FLG != 'Y' && (optList.OPT != 'TF' || (optList.OPT == 'TF' && optList.ONCESMART_ID == '-1'))">
  <input />
</div>

enter image description here

好的..

但是

<div ng-show="optList.editing && optList.BANKRUPT_FLG != 'Y' && (optList.OPT != 'TF' || (optList.OPT == 'TF' && optList.ONCESMART_ID == '-1'))">
  <input type="text"/>
</div>

enter image description here

当我在输入标签上添加type="text"时,我会得到

  

未捕获错误:语法错误,无法识别的表达式:

     

div:has(输入[type =&#39; text&#39;])[ng-show =&#39; optList.editing&amp;&amp; optList.BANKRUPT_FLG!=&#39; Y&#39; &安培;&安培; (optList.OPT!=&#39; TF&#39; ||(optList.OPT ==&#39; TF&#39;&amp;&amp; optList.ONCESMART_ID ==&#39; -1&#39;)) &#39;]

     

enter image description here

     

enter image description here

     

enter image description here

有人能告诉我,请问如何解决这个错误?

FYI : 谷歌浏览器(48.0.2564.97)
Microsoft Visual Studio Professional 2015(14.0.23107.156)
Web Essentials 2015.1(1.0.203)

2 个答案:

答案 0 :(得分:11)

Browser Link中存在导致此问题的错误。您应该可以通过向<div>标记添加ID属性来解决此问题。

Browser Link创建jQuery表达式以尝试唯一标识页面中的标记。在这种情况下,它正在尝试使用ng-show表达式,因为标签的其他内容都不够独特。但是ng-show表达式显然太复杂了。它应该因为这个原因而被忽略,但不知何故它击败应该取消它的资格。

浏览器链接宁可使用唯一的ID或类(如果存在)。通过提供,您可以阻止它考虑ng-show属性。

答案 1 :(得分:2)

我没有DIV标签,所以我只是在Visual Studio中禁用了浏览器链接,错误就消失了。有报告称,在Visual Studio中运行AngularJS应用程序时,浏览器链接会导致问题。

要禁用,只需取消选中“启用浏览器链接”选项。

enter image description here

我被指向了这个解决方案,答案中有更多细节:ng-show > 10 throws syntax error (VS browser link)