Свойства контроллера привязки в области изоляции

0

Я пытаюсь перейти к директивам AngularJS и привязкам к области. Я скорее отдаю свой код, а затем задаю вопрос:

Вот мое определение директивы:

'use strict';
 (function(){
 var app = angular.module('gemStore', []);
 var gem = {name:"Pearl",price:22.5 };
 app.controller("StoreController",function(){
   var self = this;
    self.product = gem;
    self.validateOnSubmit="myForm";

});
app.directive("requireOnSubmit",function(){
   var directiveDefinitionObject = {
       restrict:'A',
       scope : {
           validationFlag : '='
       },
       link : function(scope,ele,attr){
           console.log(scope.validationFlag);
         },
       controller : "StoreController",
       controllerAs : "store",
       bindToController : true
   };
    return directiveDefinitionObject;
});}());

И вот мой html:

  <!DOCTYPE html>
  <html ng-app="gemStore">
<head>
  <meta charset="utf-8">
  <title></title>
</head>
<body ng-controller="StoreController as store">
    <div>
        <h3>{{store.product.name}} </h3>  <h3>{{store.product.price}} </h3>
    </div>
    <form name="myForm">
        <input type="text" name="test" require-on-submit />
    </form>

</body>
<script type="text/javascript" src="resources/js/angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>

Теперь я хочу связать свойство validationOnSubmit с контроллером с validationFlag, и это должно быть двустороннее связывание. Я попытался добавить

 <input type="text" name="test" require-on-submit      validationFlag="validationOnSubmit"/>

и в директиве:

     scope : {
           validationFlag : '=validationFlag'
       }

Но не работает. Как достичь этого?

Теги:
binding
directive

1 ответ

0

Я не уверен, что 2-сторонняя привязка работает с полномочиями контроллера, но правильный синтаксис будет

   validationFlag="store.validationOnSubmit"

StoreController будет инициализирован дважды. Один раз на элемент тела и один раз с директивой. Чтобы избежать путаницы, вы должны удалить контроллер из директивы, и если вам нужен доступ к помощи регулятора require Собственость.

  • 0
    что я должен указать в свойствах require? require = "StoreController"? и принять его как 4-й параметр в директивную функцию.
  • 0
    Нет, вам нужно определить директиву. Вы можете использовать ngController

Ещё вопросы

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