2017-03-16 62 views
0

我是Angular的新手,我需要UI路由器的帮助。点击链接后,我需要加载mylink.html。这里是我的代码:角路由不起作用(没有错误)

var app = angular.module('hollywood', ['ui.router']); 
app.config(function($stateProvider, $urlRouterProvider, $locationProvider) { 
$locationProvider.html5Mode({enabled: true, requireBase: false}); 
$stateProvider.state('mylink', { 
templateUrl: 'mylink.html' 
}); 
}) 

<a ui-sref="mylink">My Link</a> 
<article ui-view></article> 

我在做什么错?有一个在控制台没有错误,但错误之后点击:

XMLHttpRequest cannot load .... Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource. 

的事情是文件是本地的,我不认为我可以建立CORS在这些情况下。

https://jsfiddle.net/2q61mcp9/

+0

你错过了在状态对象中添加网址 –

+0

我应该把什么url?我看过教程,并不总是人们需要url。这是为什么? –

回答

0

尝试使用此代码

var app = angular.module('hollywood', ['ui.router']); 
    app.config(function($stateProvider, $urlRouterProvider, $locationProvider) { 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
    $stateProvider.state('mylink', { 
     url: '/my-link', 
     templateUrl: 'mylink.html' // give absolute url like src/views/mylink/html 
    }); 
    }) 

你错过了在

+0

结帐此http://codepen.io/alexandremasy/pen/mDcEd –

+0

不幸的是,不起作用。当我在Electron中运行它时,它的工作是正确的,但在浏览器中它根本不工作。 在电子应用程序中,我点击“mylink”并加载我的HTML文件,但当我点击另一个“mylink2”时,它不起作用。 –

0

@Damian你通过某种服务器(蟒蛇,节点等的服务您的角度应用状态对象添加网址),还是只是在浏览器中通过文件系统(直接通过浏览器打开选项)运行应用程序? 如果你直接运行它,你很可能会得到这个CORS问题,因为浏览器不允许通过文件系统共享资源来解决安全问题。

+0

我直接在我的本地主机上使用它。当我在Electron(chrominium + nodejs)中运行它时,我没有加载文件的问题。但仍然有路由问题。它只能使用一次。 –

0

我的代码是正确的。我已经删除'网址'并在服务器上运行它。有用。