2015-06-25 1 views
-1

Я понятия не имею, почему это не работает. Что я здесь делаю неправильно? У меня нет ошибок в консоли, но html из main.html и about.html не загружается.Нет ошибок на консоли, но html не загружается

Когда я использую контроллер непосредственно в html, он работает хорошо, но когда я использую выше код, ng-view не получает html из файлов main.html и about.html.

app.js

angular 
    .module('invoice2', [ 
    'ngRoute' 
    ]) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'InvoiceController' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 

about.js

angular.module('finance2', []) 
.factory('currencyConverter', function() { 
    var currencies = ['USD', 'EUR', 'CNY']; 
    var usdToForeignRates = { 
    USD: 1, 
    EUR: 0.74, 
    CNY: 6.09 
    }; 
    var convert = function (amount, inCurr, outCurr) { 
    return amount * usdToForeignRates[outCurr]/usdToForeignRates[inCurr]; 
    }; 

    return { 
    currencies: currencies, 
    convert: convert 
    }; 
}); 

angular.module('invoice2', ['finance2']) 
.controller('InvoiceController', ['currencyConverter', function(currencyConverter) { 
    this.qty = 1; 
    this.cost = 2; 
    this.inCurr = 'EUR'; 
    this.currencies = currencyConverter.currencies; 

    this.total = function total(outCurr) { 
    return currencyConverter.convert(this.qty * this.cost, this.inCurr, outCurr); 
    }; 
    this.pay = function pay() { 
    window.alert("Thanks!"); 
    }; 
}]); 

index.html

<body ng-app="invoice2">   
    <div class="container"> 
     <div ng-view=""></div> 
    </div> 
</body> 

ответ

2

Вы не можете определить модуль несколько раз

Вы

angular 
    .module('invoice2', [ 
    'ngRoute' 
    ]) 

, а затем

angular.module('invoice2', ['finance2']) 

, который перезаписывает первый. Вместо этого у вас есть один массив зависимостей и вы получите модуль позже.

// define it once 
angular.module('invoice2', ['ngRoute', 'finance2']) 

// and get that instance later 
var app = angular.module('invoice2'); 
+0

Только что понял, что ваш ответ такой же, как у меня, однако, вы избили меня довольно долго. Удаление моего ответа. – nikhil

+1

Какой позор ... теперь я вижу, что я делаю неправильно. Большое спасибо @nikhil и @Patrick! – ekstro

 Смежные вопросы

  • Нет связанных вопросов^_^