2017-10-14 2 views
0

내 구성 요소 코드 :각도 구성 요소 양방향 바인딩 작동하지

(function() { 
    'use strict'; 

    function SubscribeController(toaster, EmbHTTPFactory) { 
    var ctrl = this; 

    ctrl.submit = function() { 
     EmbHTTPFactory.subscribeToNewsletter(ctrl.email).then(function (res) { 
     toaster.pop('success', "User successfully subscribed"); 
     },function (err) { 

     }); 
    } 
    } 

    var app = angular.module('24hourdigitizing'), 
     config = { 
     templateUrl: "app/views/components/form-component.html", 
     controller: ['toaster', 'ng24hdDigitizing.factories.EmbHTTPFactory', SubscribeController], 
     bindings: { 
      label: '<', 
      button: '<', 
      action: '<', 
      classname: '<' 
     } 
     }; 

    app.component('formComponent', config); 

}()); 

템플릿 HTML은

<div class="container"> 
     <div class="row"> 
      <form action="" name="formElement" class="form-element"> 
       <div class="form-group no-margin"> 
        <label for="email" ng-if="$ctrl.label">{{ $ctrl.label }}</label> 
        <div class=""> 
         <input class="form-control input-lg" 
           type="text" 
           id="email" 
           name="email" 
           ng-modal="$ctrl.email" 
           placeholder="Email..." 
           ng-required="true" 
         > 
        </div> 
        <button 
          type="button" 
          class="btn btn-primary btn-lg" 
          ng-disabled="formElement.$invalid" 
          ng-click="$ctrl.submit()" 
        >{{ $ctrl.button }}</button> 
       </div> 
      </form> 
     </div> 
    </div> 

는 문제 : 는 지금까지 내가 알고있는 $의 ctrl.email는 두 가지 방법으로 바인더 제본 변수해야한다 . 그러나 내가 형식을 제출할 때마다 나는 정의되지 않고있다. 코드에서 ctrl.email은 정의되지 않았습니다.

누구든지 내가이 문제를 잘못 처리하고 있다고 설명 할 수 있습니까? 오타가있다

답변

1

, 그것은

ng-model="$ctrl.email" 

대신 ng-modal

해야한다
관련 문제