[英]AngularJS directive: '&' in isolated scope isn't working as expected
我正在嘗試將控制器中的方法傳遞給我的指令。 這就是我這樣做的方式:
在控制器中:
$scope.getEmployees = function()
{
return {2: 'Jane', 3: 'Bob', 4: 'Smith'};
}
$scope.getSelected = function()
{
return 3;
}
在視圖/ HTML中:
<mydirective data-placeHolder="Choose an employee.."
data-getOpts="getEmployees()" data-getSelected="getSelected()" />
在指令中:
var dir =
{
restrict: 'E',
templateUrl : 'views/mydirective.html',
scope: {
placeholder: '@',
getSelected: '&',
getOpts: '&'
},
controller: ['$scope', '$element', '$attrs',
function($scope, $element, $attrs)
{
console.log( $scope.getOpts() );
}],
};
MyApp.directive('mydirective', function()
{
return dir;
});
但是,指令控制器中的以下行:
console.log( $scope.getOpts() );
生成undefined而不是返回控制器的getEmployees()
函數中的對象或函數集。
我究竟做錯了什么?
它與命名約定有關。 您需要將駝峰大小寫轉換為破折號分隔的單詞
data-get-opts="getEmployees()"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.