2015-01-17 24 views
0

我有一些項目列表中有更新文本字段的某些詞彙,我希望將焦點放在所選索引上的單詞末尾。但每次我都把重點放在最後的指數上。焦點不能在索引中使用Angular

這裏是我的HTML代碼

<body ng-controller="MainCtrl"> 
    <h1>Hello Plunker!</h1> 
    <li ng-repeat="i in number"> 
    <input focus-on="focusMe" value="sfsfsf" /> 
    <button type="submit" ng-click="do()">do</button> 
    </li> 
</body> 

這裏我controller

app.directive('focusOn', function() { 
    return function(scope, elem, attr) { 
     scope.$on('focusOn', function(e, name) { 
     if(name === attr.focusOn) { 
      elem[0].focus(); 
     } 
     }); 
    }; 
}); 

app.factory('focus', function ($rootScope, $timeout) { 
    return function(name) { 
    $timeout(function(){ 
     $rootScope.$broadcast('focusOn', name); 
    }); 
    } 
}); 

app.controller('MainCtrl', function ($scope, focus) { 
$scope.number=[1,2,3,4,5,6,7,8,9,10]; 
    $scope.do=function(){ 
     focus('focusMe'); 
    } 

這裏是我的plunker

任何建議將是對我有幫助。

修訂PLUNKER

謝謝

+0

你plunker是不是你問這裏..檢查一次。 – Ved

+0

這樣的? http://plnkr.co/edit/eQSnIJpGyvJ6peiIsqTp?p=preview – PSL

+0

@abarik回顧PSL plunker。這是你所問.. – Ved

回答

0

正確的解決方案可能會取決於什麼瀏覽器,你需要支持。

你可以試試這個:

scope.$on('focusOn', function(e, name) { 

    if (name == attr.name) { 

    var element = elem[0]; 

    element.focus(); 

    var value = element.value; 
    element.value = ''; 
    element.value = value; 
    } 
}); 

演示:http://plnkr.co/edit/pulIrU56qf2J4UjCJlgQ?p=preview