【问题标题】:How can I access an embedded resource (.html) from an AngularJS controller that expects a URL?如何从需要 URL 的 AngularJS 控制器访问嵌入式资源 (.html)?
【发布时间】:2016-02-20 04:18:28
【问题描述】:

如何从需要指向 html 的 URL 路径的 AngularJS javascript 控制器访问嵌入式资源 (.html)?

一些背景:我有一个 .NET MVC 站点,不同项目中的几个可移植区域(使用 MvcContrib)生成一个带有嵌入式控制器、视图、css、js 和 html 的 .DLL。然后在主 .NET MVC 站点中引用这些 DLL。

其中一个便携式区域使用 AngularJS,以前它是使用 MEF(Microsoft 可扩展性框架)的完整 .NET MVC 项目,但是我正在移动到便携式区域并取消 MEF。

便携式区域都工作正常,我的主要 MVC 应用程序正在按预期访问控制器和视图,正在访问程序集中嵌入的 CSS 和 JS 文件。

现在挑战在于 AngularJS,在服务器端从 c# .net 获取嵌入资源很好,但是当 Angular 在 javascript 中查找现在嵌入的文件的路径时,如何处理它。

一个例子

$scope.editObject = function () {

    var modalEditObject = $modal.open({
        templateUrl: $rootScope.applicationFolder + '/views/editObject.html',
        controller: 'CRUDObjectController',
        windowClass: 'popup',
        size: 'lg',
        resolve: {
            object: function () {
                return $scope.gridApi.selection.getSelectedRows()[0];
            }
        }
    });

 .....

在上面的示例中,这一行正在寻找要使用的相应 HTML 文件。但是,这现在是程序集中的嵌入式资源。

templateUrl: $rootScope.applicationFolder + '/views/editObject.html'

【问题讨论】:

    标签: javascript c# .net angularjs asp.net-mvc


    【解决方案1】:

    您可以在 templateUrl 上使用提供 url 路径的函数:

    像这样

    templateUrl:myFunc,

    $scope.myFunc = function() { return $rootScope.applicationFolder + '/views/editObject.html'}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 2013-11-25
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      相关资源
      最近更新 更多