我正在尝试手动构建一个shell,试图弄清楚它是如何工作的
结构:
- application(php stuff)
- webroot
-- app
--- app.js
-- templates
--- main
---- login
----- login.html
index.html (with angularjs libs)
app.js:
function config($routeProvider){
$routeProvider
.when("/login",{
templateUrl: "../templates/main/login/login.html"
})
.otherwise({ redirectTo:"/other" });
}
angular
.module("app", ["ngRoute", "ngResource"])
.config(config);
登录:
<div>LOGIN test template</div>
“/ other”不会退出。 除此之外我尝试了不同的方法: templateUrl:“templates / main / login / login.html” templateUrl:“webroot / templates / main / login / login.html”
顺便说一下,网址带有“#”(例如nameDomain.com/#/login,但它应该是nameDomain.com/#login),但angularjs似乎只允许/ nameUrlTemplate
答案 0 :(得分:1)
看一下Angular的routeProvider文档,因为这可以解决你的一些困惑。
我认为你想在这里做的是使用.otherwise
中的现有路线,因为/other
未在任何地方定义,因此Angular不会知道你用它做什么:
var app = angular.module('app', ['ngRoute', 'ngResource']);
app.config(function config($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '../templates/main/index.html'
})
.when('/login', {
templateUrl: '../templates/main/login/login.html'
})
.otherwise({
redirectTo: '/'
});
});
我相信这应该会给你你正在寻找的效果。显然,你可以根据需要调整它,例如,如果你想为你没有定义的任何东西设置404路径/模板。就目前而言,这将始终回溯到不存在的特定路线的主页。当您考虑用户和登录/退出状态时,这会变得更加复杂,但这更像是一个概念验证。
此外,ngRoute
默认情况下会呈现/#/foo
格式的网址,因为它使用的是hashbang风格格式,这样搜索引擎的抓取工具就可以解析和阅读各种搜索引擎JavaScript webpp的页面/状态。你所指的是一个文档片段,它可以被