【问题标题】:ng-init passing argument throws Syntax Error, unrecognized expressionng-init 传递参数抛出语法错误,无法识别的表达式
【发布时间】:2015-12-16 00:01:13
【问题描述】:

我有一个像这样绑定到我的元素的 angularjs 控制器

<div ng-controller="mycontroller" ng-init="initialize('Type A')" >
 <div ng-repeat="task in tasks">
    ...
  </div>
</div>

我将初始化函数作为 $scope 的一部分实现

$scope.initialize = function(type) { ... do something... }

我在 Chrome 中收到运行时错误,说明以下内容

未捕获的错误:语法错误,无法识别的表达式: div:has([ng-repeat='任务中的任务'])[ng-init='initialize('Type A')']

该代码运行良好,并且可以执行应有的操作。但是为什么我确实在开发工具中看到了这个?

【问题讨论】:

  • div:has 有点危险。什么版本的 Angular?您知道您不应该将ng-init 用于此类事情。见docs.angularjs.org/api/ng/directive/ngInit
  • 也许类型 A 不是字符串.. 试试 ng-init="initialize(Type A)"
  • div:has 让您看起来像是在使用 jQuery 或使用 jQuery 的库。你是?以什么方式?

标签: angularjs


【解决方案1】:

原来Visual Studio 正在使用一些 SignalR 实现的钩子将一些古怪的东西附加到浏览器。 VS 做到这一点的方式是根据 DOM 中不稳定的内容注入一些 JS 代码。那个微软的杰作叫做BrowserLink

我通过单击“开始”按钮旁边的类似撤消的小按钮并选择“禁用 BrowserLink”来禁用 BrowserLink

Here is more information on how to disable it.

【讨论】:

    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多