加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

来自Angular的错误,AngularJS 1.3想要ngMessages注入

发布时间:2020-12-17 18:08:10 所属栏目:安全 来源:网络整理
导读:我已经包含了angular-messages.js,如下面的索引所示.当我运行我的应用程序时,我收到错误: Error: [$compile:ctreq] Controller 'ngMessages',required by directive 'ngMessage',can't be found! 我的registration.js很简单,我相信我正确地做了依赖.它看起
我已经包含了angular-messages.js,如下面的索引所示.当我运行我的应用程序时,我收到错误:

Error: [$compile:ctreq] Controller 'ngMessages',required 
       by directive 'ngMessage',can't be found!

我的registration.js很简单,我相信我正确地做了依赖.它看起来如下:

angular.module('registrationController',['ngMessages']).controller('RegistrationCtrl',['$scope','ngMessages',function ($scope) {
         var vm = this;
     }]);

<script src="js/angular.js"></script>
<script src="js/angular-messages.js"></script>
<script src="js/angular-route.js"></script>
<script src="js/angular-resource.js"></script>

<script src="app/app.js"></script>
<script src="app/controllers/registration.js"></script>

<form novalidate="novalidate" ng-submit="registerForm()"
      ng-controller="RegistrationCtrl">

我对角度比较新,所以我不太确定我得到DI 100%.我假设因为包含数组而注入了ngMessages但是因为我没有在控制器中使用它,所以我不需要在函数中提及它.

解决方法

这里的ngMessages是您的模块所必需的,但不是您的控制器.

ngMessages是指令而不是服务,请查看此文档

> https://docs.angularjs.org/api/ngMessages/directive/ngMessages

这就是你如何将它定义为angularJs模块的要求

angular.module('myModule',['ngMessages']);

然后你可以在你的HTML中使用这样:

<form name="myForm">
<input type="text" ng-model="field" name="myField" required minlength="5" />
<div ng-messages="myForm.myField.$error">
  <div ng-message="required">You did not enter a field</div>
  <div ng-message="minlength">The value entered is too short</div>
</div>
</form>

编辑:这是一个工作样本

1- Index.html应该是:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body ng-app="registerApp" ng-controller="RegistrationCtrl">

    <form name="myForm">
        <input type="text" ng-model="field" name="myField" required minlength="5" />
        <div ng-messages="myForm.myField.$error">
            <div ng-message="required">You did not enter a field</div>
            <div ng-message="minlength">The value entered is too short</div>
        </div>
    </form>

    <script src="Scripts/angular.js"></script>
    <script src="Scripts/angular-messages.js"></script>
    <script src="app.js"></script>
</body>
</html>

2- app.js

angular
    .module('registerApp',['ngMessages'])
    .controller('RegistrationCtrl',function ($scope) {
         var vm = this;
     }]);

编辑2:基本上对于ngMessages,因为它是一个指令,你只需要将指令所定义的模块添加到app模块依赖项中,而不需要向控制器注入任何东西.也许你可以从控制器获取绑定的错误消息.

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读