Javascript ng click事件不适用于ocLazyLoad
我有一个基本的Angular.js应用程序,它使用ocLazyLoad加载应用程序文件。我正在使用sbAdminApp模板的框架 我的问题是,当我使用带有ng click事件的模板时,不会触发click事件。这不是范围问题,因为当我将函数的内容打印到视图时,它会显示出来 以下是我的一些代码: 要使用ocLazyLoad加载文件,请执行以下操作:Javascript ng click事件不适用于ocLazyLoad,javascript,angularjs,angularjs-ng-click,oclazyload,Javascript,Angularjs,Angularjs Ng Click,Oclazyload,我有一个基本的Angular.js应用程序,它使用ocLazyLoad加载应用程序文件。我正在使用sbAdminApp模板的框架 我的问题是,当我使用带有ng click事件的模板时,不会触发click事件。这不是范围问题,因为当我将函数的内容打印到视图时,它会显示出来 以下是我的一些代码: 要使用ocLazyLoad加载文件,请执行以下操作: $stateProvider.state('dashboard.importLotteries', { templateUrl: '/Scrip
$stateProvider.state('dashboard.importLotteries', {
templateUrl: '/Scripts/app/views/importLotteries.html',
url: '/importLotteries',
controller: 'LotteriesCtrl',
resolve: {
loadMyFiles: function ($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'sbAdminApp',
files: [
'/Scripts/app/scripts/services/lotteriesService.js',
'/Scripts/app/scripts/controllers/lotteries.js'
]
})
}
}
}
这是importLotteries.html模板文件:
<!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Import Lotteries
</div>
{{importLotteries.toString()}}
<div class="panel-body">
<input type="button" ng-click="importLotteries()" value="Import"/>
<span ng-model="importStatus">
</span>
</div>
</div>
<!-- /.panel -->
</div>
<!-- /.col-lg-12 -->
</div>
结果视图如下所示:
如您所见,该函数存在于作用域上,但单击事件没有触发,并且我没有收到任何错误
我尝试在网上搜索一个解决方案已经有一段时间了,但是找不到,所以任何帮助都将不胜感激
进一步调查该问题后,我发现事件函数(importLotteries)在作用域中未定义,但当我将值更改为字符串而不是函数时,作用域值是正确的。尝试将ng href或href附加到链接,它将被触发
<input type="button" ng-click="importLotteries()" ng-href='#' value="Import"/>
来源:
[1] @HanletEscaño不,不应该。如果您使用的是controllerAs语法,那么您只能添加一个前缀,而controllerAs语法不是,而且您可能不想将其命名为$scope。谢,你怎么知道它没有开火?你在里面设置断点了吗?@Shai你怎么知道这是ocLazyLoad问题?您是否尝试过提前加载文件(lotteriesService.js,lotteries.js),而不是使用ocLoazyLoad加载?@matmo,是的,我设置了一个断点,并添加了一个未执行的警报命令。您是否可以对您的问题进行处理?@ShaiAharoni我想您可以共享一个或多个plnkr问题,这将更容易调试,但他没有使用链接,而是输入,它不应该有href属性或ng href
<input type="button" ng-click="importLotteries()" ng-href='#' value="Import"/>