2016-03-09 2 views
0

Я хотел бы передать аргумент из директивы HTML в контроллер Пример:параметры Pass из директивы HTML в контроллер

Директива:

angular.module('app') 
    .directive('helloWorld', function() { 
    return { 
     replace: false, 
     restrict: 'AE', 
     templateUrl: "./views/templates/helloWorld.html" 
    } 
}); 

HelloWorld.html:

<body ng-app="app" > 
<div ng-controller="HelloWorldCtrl"> 
{{ welcome }} 
</div> 

hello.html:

<body ng-app="app"> 
<hello-world/> 
</body> 

HelloWorldCtrl:

angular.module('app') 
.controller('HomeWorldCtrl', function ($scope,) { 

    $scope.welcome = "Welcome" 

    }; 
}) 

Могу ли я указать параметр в hello.html например,

<hello-world param="param1"/> 

Это передается в контроллер? Итак, в HomeWorldCtrl я могу проверить значение параметра? Есть ли лучшие альтернативы для достижения этого?

Спасибо,

ответ

0
app.directive('helloWorld', function(){ 
return { 
    restrict:'E', 
    scope: { 
    param: '@' 
    }, 
    template:'<div class="param"><h2>{{param}}</h3></div>' 
}; 
}); 

// you have options to choose from 

//= is two-way binding 
//@ simply reads the value (one-way binding) 
//& is used to bind functions 

<hello-world="someParam"></hello-world> 
// for the scope definition: 

scope: { 
title: '@helloWorld' 
} 
The usage in the template will remain the same 

<hello-world param="someParam"></hello-world> 
+0

Извините, я не понимаю этого. Будет ли приведенное выше предложение передать someParam контроллеру? –

+0

Рад, что я могу помочь –

0

Если вы не используете изолированный объем (объем: {someparam: ""}), то вы можете использовать любые свойства $ области в шаблоне директивы, ничего не меняя:

$scope.param = "new param value"; 
.. 
return { 
    .. 
    ,template: "<param>{{param}}</param>" 
0

Спасибо!

директива

return { 
     replace: false, 
     restrict: 'AE', 
     templateUrl: "./views/templates/PatientSearchEdit.html", 
     scope: { 
      param: '@' 
     } 
    } 

Контроллер

console.log($scope.param); 

Бревна действительно значение, указанное. Спасибо вам большое!

Смежные вопросы