Инъекция одной или нескольких моделей с использованием служебной директивы в отдельном файле JavaScript в angularJs

0

Когда я пытаюсь ввести одну или несколько моделей, используя служебную директиву в отдельный файл сценария java, я становлюсь ниже ошибки, но он работает в одном файле Javascript. Здесь клиент - модель

Ошибка:

Msgstr "Binding.js: 33 Uncaught ReferenceError: Клиент не определен". Binding.js: 9 Uncaught ReferenceError: Клиент не определен (анонимная функция) @Binding.js: 9 angular.js: 13424 Ошибка: [$ injector: unpr] Неизвестный поставщик: customerProvider <- customer <- myCustomerController

Ниже мой код:

Модель (customer.js):

     function Customer() {
       this.customerName = "David";
       this.customerCode = "C001";
      }

Код привязки (Binding.js)

    function BindingCode($scope,customer) {
    $scope.customer = customer;
    }
    var myCustomerApp = angular.module("myCustomerApp", []);
    myCustomerApp.controller("myCustomerController", BindingCode);
    myCustomerApp.service('customer', Customer);

Просмотреть код (customer.html)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/angular.js"></script>
<script src="Scripts/Binding.js"></script>
</head>


<body ng-app="myCustomerApp">
   <div ng-controller="myCustomerController">

    <table>

        <tr>
            <td>
                CustomerName
            </td>
            <td>
                <input type=text id="CustomerName" ng-model="customer.customerName" /><br />

            </td>
        </tr>
        <tr>
            <td>
                CustomerCode
            </td>
            <td>
                <input type=text id="CustomerCode" ng-model="customer.customerCode" />

            </td>
        </tr>

    </table>

</div>

Но тот же код работает здесь только для модели, кода просмотра и привязки, включенного в скрипт раздела в customer.html: Model: Customer.js

   function Customer() {
    this.customerName = "David";
    this.customerCode = "C001";
 }

Просмотреть код (customer.html)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/angular.js"></script>
   <script src="Scripts/CustomerModle.js"></script>
  </head>

    <script>

    function BindingCode($scope, customer) {
        $scope.customer = customer;

    }
    var myCustomerApp = angular.module("myCustomerApp", []);
    myCustomerApp.controller("myCustomerController", BindingCode);
    myCustomerApp.service('customer', Customer);

</script>

<body ng-app="myCustomerApp">
    <div ng-controller="myCustomerController">
        </div>

</body>
</html>
  • 0
    Как это связано с Angular2?
  • 0
    Вы включили customer.js на странице?
Показать ещё 1 комментарий
Теги:
angular-ui-router
angularjs-scope
angularjs-directive

1 ответ

-2
Лучший ответ

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

BindingCode.$inject = ['Customer']

Переустановите customer.js в

var myCustomerApp = angular.module("myCustomerApp", []);
myCustomerApp.service('customer', Customer);
function Customer() {
   this.customerName = "David";
   this.customerCode = "C001";
  }

Перегруппируйте Binding.js в

var myCustomerApp = angular.module("myCustomerApp", []);
myCustomerApp.controller("myCustomerController", BindingCode);
BindingCode.$inject = ['Customer']

function BindingCode($scope,Customer) {
$scope.customer = Customer;
}

добавьте <script src="Scripts/customer.js"></script> в файл customer.html

  • 0
    Пожалуйста, посмотрите код привязки, который я ввел, используя следующий код: myCustomerApp.service ('customer', Customer);
  • 0
    Это не инъекция, это просто использование. Вы не можете использовать внешний сервис, не вводя myCustomerApp.service («клиент», клиент); присваивает имя «Клиент» новой услуге под названием «клиент». это просто инициализация услуги. У него нет ссылки на контроллер
Показать ещё 22 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню