gpt4 book ai didi

javascript - ng-click 事件不适用于 ocLazyLoad

转载 作者:行者123 更新时间:2023-11-29 16:03:08 25 4
gpt4 key购买 nike

我有一个基本的 Angular.js 应用程序,它使用 ocLazyLoad 加载应用程序文件。我正在使用 sbAdminApp 模板的框架。

我的问题是,当我使用带有 ng-click 事件的模板时,没有触发 click 事件。这不是范围问题,因为当我将函数的内容打印到显示的 View 时。

这是我的一些代码:

使用 ocLazyLoad 加载文件:

$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>

这是 Controller 的代码:

'use strict';
angular.module('sbAdminApp')
.controller('LotteriesCtrl', function ($scope, lotteriesService) {

$scope.importLotteries = function () {

alert("importing");
$scope.importStatus = "Loading...";
};

});

结果 View 如下所示:

enter image description here

如您所见,该函数存在于作用域中,但没有触发点击事件,我没有收到任何错误。

我尝试在线搜索解决方案有一段时间了,但没有找到,所以非常感谢您的帮助!

在进一步调查问题后,我发现事件函数 (importLotteries) 在范围内未定义,但是当我将值更改为字符串而不是函数时,范围值是正确的。

最佳答案

尝试将 ng-href 或 href 附加到链接,它将被触发。

<input type="button" ng-click="importLotteries()" ng-href='#' value="Import"/>

来源:

[1] Angular ng-click with call to a controller function not working

关于javascript - ng-click 事件不适用于 ocLazyLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37638136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com