Не в состоянии запустить код angularjs на компьютере - PullRequest
0 голосов
/ 25 февраля 2019

Невозможно запустить угловой код js в следующей программе на моем компьютере.Он работает в онлайн-редакторе plunker. Пожалуйста, дайте мне знать, если мне нужно скачать что-нибудь, прежде чем я смогу запустить код.Заранее спасибо

HTML-код:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
            <title>The angularjs app!</title>
            <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.7/angular.min.js"></script>
            <script src="C:\Users\komar\Desktop\script.js"></script>
    </head>
    <body>
        <div ng-app="MyModule" ng-controller="MyController as ctrl">
            <b>Invoice:</b><br>
            <div>
            Quantity:<input type = "number" min = 0 ng-model = "ctrl.quantity" required><br>
            Costs:<input type = "number" min=0 ng-model="ctrl.costs" required>
            <select ng-model="ctrl.selCur">
                <option ng-repeat = "c in ctrl.currencies">{{c}}</option>
            </span><br>
            <b>Total:</b><span ng-repeat= "c in ctrl.currencies">
                {{ctrl.convert(c) | currency:c}}
            </span><br>
            <button class ="btn" ng-click="ctrl.createAlert()">Pay</button>
        </div>
    </div>
    </body>
</html>

Код Javascript:

var app = angular.module('MyModule');

app.controller('MyController',[MyService,function MyController(MyService){
    this.quantity = 1;
    this.costs =2;
    this.selCur = 'EUR';
    this.currencies = MyService.currencies;

    var convert = function(baseCur){
        return MyService.currentCurrencies(this.quantity*this.costs,this.selCur,baseCur);
    }
    this.createAlert = function createAlert(){
        window.alert('Thanks!');
    };
}]);

app.factory('MyService',function(){
    var currencies= ['USD','EUR','CNY'];
     var values = {
        USD: 1,
        EUR: 0.88,
        CNY: 6.72
    };

    var currentCurrencies = function(amount,selCur,baseCur){
        return amount*values(selCur)/values(baseCur);
    }

    return {
        currentCurrencies: currentCurrencies,
        currencies: currencies
    };

});

Я не могу запустить этот код.пожалуйста, помогите мне решить проблемы и запустите код

Даже этот код не работает HTML-код:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example - example-guide-concepts-21-production</title>


  <script src="//code.angularjs.org/1.7.7/angular.min.js"></script>
  <script src="finance2.js"></script>
  <script src="invoice2.js"></script>



</head>
<body >
  <div ng-app="invoice2" ng-controller="InvoiceController as invoice">
  <b>Invoice:</b>
  <div>
    Quantity: <input type="number" min="0" ng-model="invoice.qty" required >
  </div>
  <div>
    Costs: <input type="number" min="0" ng-model="invoice.cost" required >
    <select ng-model="invoice.inCurr">
      <option ng-repeat="c in invoice.currencies">{{c}}</option>
    </select>
  </div>
  <div>
    <b>Total:</b>
    <span ng-repeat="c in invoice.currencies">
      {{invoice.total(c) | currency:c}}
    </span><br>
    <button class="btn" ng-click="invoice.pay()">Pay</button>
  </div>
</div>
</body>
</html>

файлы сценариев

(function(angular) {
  'use strict';
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
    };
  });
})(window.angular);


(function(angular) {
  'use strict';
angular.module('invoice2', ['finance2'])
  .controller('InvoiceController', ['currencyConverter', function InvoiceController(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!');
    };
  }]);
})(window.angular);

Ответы [ 4 ]

0 голосов
/ 25 февраля 2019

Ваш HTML-код правильный, вам просто нужно изменить код файла script.js следующим кодом.

var app = angular.module('MyModule', []);

app.controller('MyController',['$scope','MyService',function MyController(MyService, $scope){
    this.quantity = 1;
    this.costs =2;
    this.selCur = 'EUR';
    this.currencies = MyService.currencies;

    var convert = function(baseCur){
        return MyService.currentCurrencies(this.quantity*this.costs,this.selCur,baseCur);
    }
    this.createAlert = function createAlert(){
        window.alert('Thanks!');
    };
}]);

app.factory('MyService',function(){
    var currencies= ['USD','EUR','CNY'];
     var values = {
        USD: 1,
        EUR: 0.88,
        CNY: 6.72
    };

    var currentCurrencies = function(amount,selCur,baseCur){
        return amount*values(selCur)/values(baseCur);
    }

    return {
        currentCurrencies: currentCurrencies,
        currencies: currencies
    };

});
0 голосов
/ 25 февраля 2019

Пожалуйста, используйте <script></script> вместо <script src="C:\Users\komar\Desktop\script.js"></script> и скопируйте свой JavaScript между тегом script.

0 голосов
/ 25 февраля 2019

Найдите обновленный код ниже

var app = angular.module('MyModule', []);

app.controller('MyController', ["MyService", function MyController(MyService) {
  this.quantity = 1;
  this.costs = 2;
  this.selCur = 'EUR';
  this.currencies = MyService.currencies;

  var convert = function(baseCur) {
    return MyService.currentCurrencies(this.quantity*this.costs, this.selCur, baseCur);
  }
  this.createAlert = function createAlert() {
    window.alert('Thanks!');
  };
}]);

app.factory('MyService', function() {
  var currencies = ['USD', 'EUR', 'CNY'];
  var values = {
    USD: 1,
    EUR: 0.88,
    CNY: 6.72
  };

  var currentCurrencies = function(amount, selCur, baseCur) {
    return amount*values(selCur)/values(baseCur);
  }

  return {
    currentCurrencies: currentCurrencies,
    currencies: currencies
  };

});
<html lang="en">
    <head>
        <meta charset="UTF-8">
            <title>The angularjs app!</title>
            <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.7/angular.min.js"></script>
            <script src="script.js"></script>
    </head>
    <body>
        <div ng-app="MyModule" ng-controller="MyController as ctrl">
            <b>Invoice:</b><br>
            <div>
            Quantity:<input type = "number" min = 0 ng-model = "ctrl.quantity" required><br>
            Costs:<input type = "number" min=0 ng-model="ctrl.costs" required>
            <select ng-model="ctrl.selCur">
                <option ng-repeat = "c in ctrl.currencies">{{c}}</option>
            </span><br>
            <b>Total:</b><span ng-repeat= "c in ctrl.currencies">
                {{ctrl.convert(c) | currency:c}}
            </span><br>
            <button class ="btn" ng-click="ctrl.createAlert()">Pay</button>
        </div>
    </div>
    </body>
</html>
0 голосов
/ 25 февраля 2019

Вы должны изменить

var app = angular.module('MyModule');

на

var app = angular.module('MyModule', []); 

Проверьте []

Также

app.controller('MyController',[MyService,function MyController(MyService){

На

app.controller('MyController',["MyService",function MyController(MyService){

Отметьте "в MyService

Еще несколько исправлений

Есть еще несколько исправлений,

  • Вы должны закрытьтег.

  • return amount*values[selCur]/values[baseCur]; <- Здесь изменено <code>( на [

  • var convert = должно быть изменено на this.convert =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...