2016-07-12 4 views
1

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

мне нужно поместить информацию от контроллера (route.id) с целью быть интерпретируется директивой, которая будет переведена в другую директиву. Извините, но я не могу объяснить лучше. Я сделал код упрощение:

index.html

<div ng-app="myapp" ng-ctrl="myctrl"> 
    <adir aattr="{{param}}" > 
    </adir> 
</div> 

myapp.js:

angular.module("myapp",[]) 
    .controller('myctrl',function(){ 
     param="bye" 
    }) 
    .directive('oldie', function() { 
     return{ 
      restrict:"E", 
      template: function(elem,attr) { 
       return "<div >Hello "+ attr.battr +" </div>" 
      } 
     } 
    }) 
    .directive('adir', function() { 
     return { 
      restrict:"E", 
      template: function(elem,attr){ 
       return "<oldie battr={{" + attr.aattr + "}}></oldie>" 
      } 
     } 
    }); 

Что мне нужно, чтобы передать содержание паров к атрибуту, которые будут использоваться в директивы.

Я сделал jsfiddle играть: jsfiddle

Спасибо заранее,

ответ

0

Есть несколько мест, неправильно в вашем коде.

  1. Вы использовали "нг-Ctrl" вместо ng-controller. Таким образом, контроллер не эффективен вообще.

    <div ng-app="myapp" ng-controller="myctrl"> 
    
  2. Вы не определили переменную $ scope в контроллере.

    .controller('myctrl',function($controller){ 
    
  3. В вашей первой директиве, вы не должны использовать угловые выражения {{}} при установке атрибута в шаблоне. Это может быть простая строка.

    return "<oldie battr=" + attr.aattr + "></oldie>" 
    

Here является скрипку.

Также альтернативой этому подходу является доступ к атрибутам посредством привязок в изолированном объеме.

См. Раздел «Объект определения директивы» на странице this.

+0

Большое спасибо за ваш ответ. Как я уже сказал, это упрощение кода и обнаруженные ошибки - это просто печатать ошибки, которые я сделал на «упрощении». Прости. Так что действительно не отвечает на мою проблему (конечно, моя вина). С другой стороны, ваши изменения и наличие рабочего кода для подражания помогли мне найти, где моя проблема. Так что спасибо большое. –

0

Привет как только у создания директивы шаблона и нужно область, чтобы получить значения так из директивы и есть указание область

JS

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

app.controller('MainCtrl', function($scope) { 
    $scope.message = "Product created!"; 
}) 

app.directive('adir', function() { 
     return{ 
      restrict:"E", 
      scope: { 
      aattr: '@' 
     }, 
     template: '<oldie battr= {{aattr}} ></oldie>' 

    } 
    }) 

    app.directive('oldie', function() { 
    return{ 
      restrict:"E", 
       scope: { 
      battr: '@' 
     }, 
     template: '<div class="alert">Hello {{battr}}</div>' 
    } 
    }) 

НТМ L

<adir aattr="{{message}}" > 
    </adir> 

для refrence https://plnkr.co/edit/AjQnENCvPOU9xWzdylFL