Javascript 如何跟踪不起眼的ueoe angularjs错误
我在下一个版本的应用程序中引入了一个问题,我一辈子都看不到它是什么 我有一个ng repeat,它列出了几个选项,每个选项都有一个按钮来更详细地显示选项信息。每个选项都有一个带有如下链接的按钮:Javascript 如何跟踪不起眼的ueoe angularjs错误,javascript,angularjs,ionic-framework,angular-ui-router,Javascript,Angularjs,Ionic Framework,Angular Ui Router,我在下一个版本的应用程序中引入了一个问题,我一辈子都看不到它是什么 我有一个ng repeat,它列出了几个选项,每个选项都有一个按钮来更详细地显示选项信息。每个选项都有一个带有如下链接的按钮: ng-click="$location.url('/tab/clubs/L_1001_1001_1001')" 在我的控制器中,我将导入的$location分配给:$scope.$location=$location;但当我点击链接时,我得到了以下错误: ionic.bundle.js:20306错误
ng-click="$location.url('/tab/clubs/L_1001_1001_1001')"
在我的控制器中,我将导入的$location分配给:$scope.$location=$location;但当我点击链接时,我得到了以下错误:
ionic.bundle.js:20306错误:[$parse:ueoe]表达式意外结束:club。
如何跟踪引发此错误的原因?显然,它与俱乐部有关。不知怎么的,但我不知道是什么。这个错误意味着我缺少一个结束括号或花括号,但我运行了外部工具来检查我的所有语法,一切看起来都很好
上面的链接是从tab-clubs.html控制器调用的:ClubCtrl-整个页面呈现良好,没有跟踪任何问题。该链接使用以下状态调用特定控制器/模板:
.state('tab.clubs', {
cache: true,
url: '/clubs',
params: {
'refreshClubs' : 0,
'pushAction' : 0,
'pushSub' : null,
'pushMsg' : null,
'pushCode' : null
},
views: {
'tab-clubs': {
templateUrl: 'templates/tab-clubs.html',
controller: 'ClubCtrl'
}
}
})
.state('tab.club-detail', {
url: '/clubs/:ceID',
views: {
'tab-clubs': {
templateUrl: 'templates/detail-clubs.html',
controller: 'ClubDetailCtrl'
}
}
})
…在ClubDetailCtrl中,我添加了一些基本的console.logHere消息,只是为了查看它是否进入控制器,而看起来它不是。因此,它似乎在点击链接和调用控制器之间的某个地方受阻
更新:
所以我移动了$location.url。。。添加到控制器功能,并将模板重新编码为:
ng-click="goUrl('L_' +event.cID+ '_' +event.clID+ '_' +event.ceID);"
在控制器中,现在有:
$scope.goUrl = function(id) {
console.log("A: " +id) ;
$location.url("/tab/clubs/" +id) ;
console.log("B: " +id) ;
}
ng click正在启动并进入控制器功能,console.log A和B都在显示,但仍然会出现相同的错误。然后,我在下一个控制器中添加test console.log代码,测试控制台日志消息永远不会触发——因此它甚至不会进入控制器
我还能怎么追踪这个
错误的
ng-click="$location.url('/tab/clubs/L_{{event.cID}}_{{event.clID}}_{event.ceID}}')"
更好
ng-click="$location.url('/tab/clubs/L_'+ event.cID +'_'+ event.clID +'_'+ event.ceID)"
有关详细信息,请参阅
使现代化
通过创建控制器方法并从视图中调用该方法来简化模板:
ng-click="onClick(event)"
这将使代码更易于理解、测试、调试和维护。您是否在ng click中使用了双花括号{{}?@georgeawg-事实上,我是。我也想到了这一点,所以我查看了我以前版本的应用程序,它们的编码方式是相同的,工作没有问题。模板代码是:ng click=$location.url'/tab/clubs/L{{event.cID}}}{{event.clID}}}{event.ceID}}',渲染后显示如上所示的'tab/clubs/L{event.cID}}}'。我没有在上一个应用版本和当前应用版本之间更新Ionic或AngularJS。我仍然对这一版本感到困惑,无法找出如何跟踪此问题。我更改为此…它的渲染方式与上面的相同,但单击按钮后,我仍然会收到相同的错误。是否有某种跟踪方法可用于跟踪错误的确切来源/位置,或者有其他方法跟踪此匿名ueoe错误?
ng-click="onClick(event)"
$scope.onClick = function(event) {
var url = '/tab/clubs/L_'+ event.cID +'_'+ event.clID +'_'+ event.ceID;
$location.url(url);
};