Angularjs 从单页应用开始
我是Angularjs的初学者,我已经下载了Angularjs的模板“AngularStart”。 它附带了一些内置文件。如homecontroller、AppjsFolder等 如果我有一个空的Mvc项目,我想知道如何从angularproject开始?此外,当我运行应用程序时,浏览器中的默认url为:“http:/somelocalAddress/#/home”。有谁能告诉我#是如何附加到url的,因为我可以看到route.config文件,但它没有 我知道Layout.cshtml中有一些锚定标记Angularjs 从单页应用开始,angularjs,asp.net-mvc-4,single-page-application,angularjs-routing,Angularjs,Asp.net Mvc 4,Single Page Application,Angularjs Routing,我是Angularjs的初学者,我已经下载了Angularjs的模板“AngularStart”。 它附带了一些内置文件。如homecontroller、AppjsFolder等 如果我有一个空的Mvc项目,我想知道如何从angularproject开始?此外,当我运行应用程序时,浏览器中的默认url为:“http:/somelocalAddress/#/home”。有谁能告诉我#是如何附加到url的,因为我可以看到route.config文件,但它没有 我知道Layout.cshtml中有一些
<li data-ng-class="{active : activeViewPath==='/home'}"><a href='#/home'>Home</a></li>
<li data-ng-class="{active : activeViewPath==='/demo'}"><a href="#/demo">Demo</a></li>
<li data-ng-class="{active : activeViewPath==='/angular'}"><a href='#/angular'>Learn Angular</a></li>
<li data-ng-class="{active : activeViewPath==='/about'}"><a href='#/about'>About</a></li>
<li data-ng-class="{active : activeViewPath==='/contact'}"><a href='#/contact'>Contact</a></li>
在这里,anchortags的href附加了#,它表明url在单击锚定标记时得到了#,但当我运行应用程序时,为什么会有/#/Home
请指导我。您使用的是角度模块。这是一个完整的ajax导航控制器。这意味着,当您在实际不去任何地方的路线中导航时,ngRoute会下载部分HTML,并在带有ng view属性的div中呈现它们,从而创建一种“虚假”(但高性能)的导航体验
Angular使用#以避免浏览器在每次路由更改操作时加载整个页面。这就是为什么代码中的锚也使用了#
您的代码似乎是一个菜单的摘录,可能是一个引导菜单,它希望根据当前路径将“active”类添加到相应的li部分。控制器可能正在使用服务,以便使用$location.path()方法找出当前路径。调用path()时,它返回不带“#”的当前路径,因此在ng类属性中也不使用它
顺便说一句,您可能会激活的HTML5模式,而不使用前缀#和您的生活;)。它使用同样的技术,问题是你的用户需要使用现代浏览器,但我很确定你使用的其他依赖项也需要,是吗
如何配置HTML5模式
您正在使用角度模块。这是一个完整的ajax导航控制器。这意味着,当您在实际不去任何地方的路线中导航时,ngRoute会下载部分HTML,并在带有ng view属性的div中呈现它们,从而创建一种“虚假”(但高性能)的导航体验
Angular使用#以避免浏览器在每次路由更改操作时加载整个页面。这就是为什么代码中的锚也使用了#
您的代码似乎是菜单的摘录,可能是引导菜单,它希望根据当前路径将“active”类添加到相应的li部分。控制器可能正在使用服务,以便使用$location.path()方法找出当前路径。调用path()时,它返回不带“#”的当前路径,因此在ng类属性中也不使用它
顺便说一句,您可能会激活的HTML5模式,而不使用前缀#和您的生活;)。它使用同样的技术,问题是你的用户需要使用现代浏览器,但我很确定你使用的其他依赖项也需要,是吗
如何配置HTML5模式
angular.module('myApp',[
...
'ngRoute'
...
])
.config(function($routeProvider, $locationProvider){
$routeProvider
.when('/path/to/my/route')
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
});