Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – Angular Laravel UI-Router问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用AngularJS,Laravel和UI-Router创建SPA.在Laravel routes.PHP文件中,我有一个单独的路由’/’来加载index.PHP,这是我所有的依赖项都包含在哪里以及angular被引导的地方.作为角度根镜的孩子,我有一个带有“ui-view”属性的div.这个div是使用UI-Router加载我的Angular模板的地方.

在我的角度模块.config中,我有一些UI-Router状态设置:

app.config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider){

// Routes config using ui-router

$urlRouterProvider.otherwise('/');

$stateProvider
    .state('home',{
        url: '/home',templateUrl: 'templates/home.html',controller: 'HomeController'
    })

    .state('projects',{
        url: '/projects',templateUrl: 'templates/projects/index.html',controller: 'ProjectController'
    })
    .state('projects.create',{
        url: '/projects/create',templateUrl: 'templates/projects/create.html',controller: 'ProjectController'
    });
}]);

我遇到的问题是,当我加载第三个状态“projects.create”时,浏览器不会使用我的js / app.js主模块引导角度.它会触发错误:“警告:试图加载角度不止一次”.

但是当我加载“项目”状态时,它工作正常.此外,通过测试我意识到,如果我将“projects.create”状态URL更改为“/ createproject”,而不是“/ projects / create”,这就解决了问题.

我假设在尝试加载“js / app.js”和其他本地依赖项时这是一个路径干扰问题.我将如何解决此问题,以便应用依赖关系URL对UI路由器状态是动态的?

的index.PHP

<!DOCTYPE html>
<html>
<head>
    <Meta charset="utf-8">
    <Meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <Meta name="viewport" content="width=device-width,initial-scale=1">

    <title>AngularJS App</title>

        <!--css-->
        <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"/>

</head>

<body ng-app="scynergyApp">
    <div class="container">
        <div ui-view>

        </div>


    </div>
</body>
<!--js-->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>

    <!--angular core-->
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js"></script>
    <script src="//cdnjs.cloudFlare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script>
    <script src="/js/angular-sanitize.js"></script>
    <script src="/js/underscore.js"></script>
    <script src="/js/app.js"></script>


        <!--angular controllers-->
        <script src="/js/controllers/HomeController.js"></script>
        <script src="/js/controllers/ProjectController.js"></script>
</html>

routes.PHP文件

<?PHP
// =============================================
// HOME PAGE ===================================
// =============================================
Route::get('/',function(){
return View::make('index');
});

// =============================================
// API ROUTES ==================================
// =============================================
Route::group(array('prefix'=>'/api'),function(){
    Route::post('login','AuthController@Login');
    Route::get('@R_502_2036@ut','AuthController@@R_502_2036@ut');

    Route::resource('projects','ProjectsController',array('except' => array('create','edit','update')));
});

// =============================================
// CATCH ALL ROUTE =============================
// =============================================
// all routes that are not home or api will be redirected to the frontend
// this allows angular to route them
App::missing(function($exception)
{
    return View::make('index');
});

解决方法

您的projects.create状态映射到templates / projects / create.html url.

看起来你没有那个模板可用,所以它落入了你的全部App :: missing,它再次呈现整个页面.

再次加载页面时,您还会再次运行其所有链接的资源,因此您尝试再次运行角度. Angular检测到这个,然后吠叫.

只需确保在指定的URL上有该模板文件,一切都会好的.

大佬总结

以上是大佬教程为你收集整理的angularjs – Angular Laravel UI-Router问题全部内容,希望文章能够帮你解决angularjs – Angular Laravel UI-Router问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。