【问题标题】:AngularJs ui-router state.templateUrlAngularJs ui-router state.templateUrl
【发布时间】:2014-04-29 02:42:41
【问题描述】:

我有一个带有区域的 MVC 5 应用程序,我正在尝试在我的一个区域内为 AngularJs 使用 ui-router,但我注意到 templateUrl 是错误的。它正在尝试使用相对路径,但由于我使用的是 MVC 路由和区域,因此模板的路径不正确。

我的区域控制器操作的 url 是 localhost:3789/Admin/UserManager 。 实际路径是 /Areas/Admin/Scripts/app/usermanager/partials/userlist.html 。

angular.module("bsAdmin.userManager", ["ngResource", "ui.router", "ui.bootstrap", "bsPromiseTracker", "bsBusy", "angular-growl", "ngAnimate"])
.config(function ($stateProvider, $urlRouterProvider) {

// default state
$urlRouterProvider.otherwise("/userlist");

$stateProvider
    .state('userlist', {
        url: "/userlist",
        templateUrl: "partials/userlist.html"
    });

});

Angular ui-router 尝试使用 localhost:3789/Admin/partials/userlist.html 加载部分模板

我可以使用哪些技术,以便脚本使用正确的 url 来加载部分?

【问题讨论】:

  • 不确定,但如果此 url localhost:3789/Admin/UserManager 在浏览器中粘贴时呈现视图,您可以使用 templateurl:admin/usermanager。这个想法是 url 应该导致 html 被发回。

标签: angularjs angular-ui angular-ui-router


【解决方案1】:

如果您的 Angular javascript 在您的 .cshtml 文件中,您可以使用 ASP.NET MVC URL 帮助器来构建 URL。

$stateProvider
    .state('userlist', {
        url: "/userlist",
        templateUrl: "@Url.Content("~partials/userlist.html")"
    });

});

【讨论】:

  • 不是,我有它在 .js 文件中......我现在最终要做的,除非我找到更好的方法就是使用完整路径“/Areas/Admin/Scripts/ app/usermanager/partials/userlist.html”。
猜你喜欢
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 2015-02-22
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2014-04-27
相关资源
最近更新 更多