将链接值插入$ scope

时间:2015-12-07 11:50:27

标签: angularjs

我有一个带有$ scope的控制器,

$scope.value = "5v8uEFkzwAY"

在我的应用中,我有一些带有值的a个链接元素,我希望将该值存储到点击函数的$scope.value中。

<a href="#" value="KlyknsTJk0w">On click insert this value into $scope.value</a>
<a href="#" value="nyc6RJEEe0U">On click insert this value into $scope.value</a>
<a href="#" value="zSWdZVtXT7E">On click insert this value into $scope.value</a>
<a href="#" value="Lm8p5rlrSkY">On click insert this value into $scope.value</a>

我将如何实现这样的目标?

3 个答案:

答案 0 :(得分:1)

如果您更喜欢方法解决方案。

 $scope.setValue = function($event){
    $scope.value = $event.target.getAttribute('value')
  }

HTML

 <a href="#" value="KlyknsTJk0w" ng-click="setValue($event)">On click nsert this value into $scope.value</a>

您可以使用inline代码。

<a href="#", value="KlyknsTJk0w" ng-click="value = $event.target.getAttribute('value')">On click nsert this value into $scope.value</a>

其中value引用$scope.value,this.value引用anker标记属性(命名为value)。

这是工作的plunkr link

答案 1 :(得分:1)

您可以使用以下代码实现预期的行为:

在您的控制器中:

$scope.values = ['KlyknsTJk0w', 'nyc6RJEEe0U', 'zSWdZVtXT7E', 'Lm8p5rlrSkY'];

$scope.value = '5v8uEFkzwAY';

$scope.setValue = function(newValue) {
    $scope.value = newValue;
};

在HTML中:

<a ng-repeat="v in values" href="#" ng-click="setValue(v)">On click insert this value into {{v}}</a>

Selected value: {{value}}

这里有小提琴:http://jsfiddle.net/arpgz3vm/

答案 2 :(得分:0)

最好的方法是使用指令:

module.directive('myClick', function() {
  return {
    link: function(scope, element, attrs) {
      element.on('click', function() {
        scope.value = attrs.value;
        scope.$digest();
      });
    }
  };
});

你可以像这里一样使用它:

<a href="#" value="nyc6RJEEe0U" my-click>On click insert this value into $scope.value</a>