簡體   English   中英

Angular ui-router在頭中找不到腳本模板

[英]angular ui-router can't find script template in head

我正在嘗試將內聯模板注入我的體內,但是我得到了

控制台中的GET http://localhost:3000/home.html 404 (Not Found)錯誤。

我把腳本放在了頭上。

!!!
%html
  %head
    %title Movieseat

    %script{:id => "/home.html", :type => "text/ng-template"}
      .page-header
        %h1 Flapper News

  %body{"ng-app" => "movieseat"}

    %div{"ui-view" => ""}
    %a{"ui-sref" => "state1"} State 1
    %a{"ui-sref" => "state2"} State 2
    %a{"ui-sref" => "home"} home

這是路由模塊,

angular.module('movieseat').config([

  '$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/home');

    $stateProvider

    .state('home', {
      url: '/home',
      templateUrl: '/home.html',
      controller: 'searchCtrl'
    })

    .state('state1', {
      url: '/state1',
      templateUrl: 'assets/angular-app/templates/state1.html'
    })

    .state('state2', {
      url: "/state2",
      templateUrl: "assets/angular-app/templates/state2.html"
    })
  }

]);

腳本標簽上的html> erb轉換是否有問題?

問題在於您的ng-app位於body因此head中的script標簽不在您的主要angular模塊的范圍內。

如果templateUrl在$ templateCache或腳本標記中不存在(也以$ templateCache結尾),則會向服務器發出請求以檢索它。

由於您的標簽不在應用程序的范圍內,因此找不到該標簽,因此會生成服務器請求。

可能的解決方案:

將腳本標簽移到正文中或將ng-app屬性移至<html>標簽

經過非常仔細的閱讀,我發現我需要將腳本放入體內,而不是放在頭部。 將其放在頁腳中之后,其余的腳本都可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM