簡體   English   中英

AngularJS指令:隔離范圍內的'&'未按預期工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM