从服务中调用组件

时间:2017-10-20 18:40:41

标签: angularjs angular-components angular-controller angularjs-1.6

我正在尝试从我正在注入的服务中调用一个组件,它位于一个控制器中 - main_controller.js

我在同一文件夹中有main.html。 “/应用程序/ ABC”

<li ng-click="$ctrl.openUpload()">Upload</li>

这是控制器中的代码。

function MainCtrl($window, $cookies, $stateParams, $state, 
    modalService, $q) {

     var modal = modalService.open({
            size: 'upload',
            backdrop: 'static',
            component: 'assetUpload',
            resolve: {
                saveMsg: function () {
                    return 'Uploading…';
                },
                isModal: true,
                isReady: function () {
                    return function () {
                        return renderedPromise;
                    };
                },
                onCancel: function () {
                    return function (ctrl) {
                        ctrl.modalInstance.dismiss();
                    };
                }
            }
        });
 }

我的组件位于“/ app / component / _asset_upload /”文件夹中。

当我从控制器调用上传功能时,它会给我一个错误, “/abc/app/components/_asset_upload/asset_upload.html”404(未找到)

我不明白为什么它在“abc”文件夹(与控制器相同的文件夹)中查找组件而不是查看“/ app / components / _asset_upload /”文件夹。

如何让代码更好。即使它是一个不同的架构,请帮助。感谢

1 个答案:

答案 0 :(得分:0)

在定义组件时,您必须像这样设置templateUrl

templateUrl : 'app/components/_asset_upload/asset_upload.html'

这将从当前文件夹中搜索您的HTML,因此将其更改为

templateUrl : '/app/components/_asset_upload/asset_upload.html'

这将从应用根目录中搜索您的HTML。