是否可以在c#中引用angularjs中的范围?

时间:2015-01-05 10:29:54

标签: javascript angularjs

我在引用像c#或c ++这样的angularjs范围时遇到了问题。

以下是该方案:

我在HTML中有这样的代码。

<ul class="dropdown-menu dropdown-menu-right myDropdown" role="menu" style="border-radius:0">
  <li data-ng-repeat="year in YearList"><a data-ng-click="SetYear(year,summer1)">{{year}}</a></li>
</ul>

这是另一个HTML代码(另一个下拉列表)

<ul class="dropdown-menu dropdown-menu-right myDropdown" role="menu" style="border-radius:0">
  <li data-ng-repeat="year in YearList"><a data-ng-click="SetYear(year,summer2)">{{year}}</a></li>
</ul>

summer1summer2是范围。

这是我在控制器中的代码

$scope.SetYear = function(yearValue,myRef){
  myRef = year;
};

此处的逻辑是将year保存到myRef

我试过这个

<a data-ng-click="summer1=year">{{year}}</a>

但它不起作用..

我尝试为所有下拉列表制作一个范围函数,因为我可能有很多将使用该函数的下拉列表。

我的问题是否有任何解决方案..并且角度是否有referencing

1 个答案:

答案 0 :(得分:2)

这是一个范围问题。 每个ngRepeat你都有不同的范围;这意味着第一次ngRepeat迭代中的summer1summer1之外的ngRepeat不同。 实现您想要的最简单方法可能是使用变量名作为索引:

<ul class="dropdown-menu dropdown-menu-right myDropdown" role="menu" style="border-radius:0">
  <li data-ng-repeat="year in YearList"><a data-ng-click="SetYear(year,'summer1')">{{year}}</a></li>
</ul>

$scope.SetYear = function(yearValue,myRef){
  $scope[myRef] = year;
};

$scope['a-string']不好,但你可以使用另一个范围变量,这样就不会出现脏范围,例如:

$scope.summers = {};
$scope.SetYear = function(yearValue,myRef){
  $scope.summers[myRef] = year;
};

并使用$scope.summers.summer1 / $scope.summers.summer2。 或者,如果你想在html中做所有事情:

<div ng-init="summers={}">
  <h2>Summer 1: {{ summers.summer1 }}</h2>
  <ul class="dropdown-menu dropdown-menu-right myDropdown" role="menu" style="border-radius:0">
    <li data-ng-repeat="year in YearList"><a data-ng-click="summers.summer1=value">{{year}}</a></li>
  </ul>
  <h2>Summer 2: {{ summers.summer2 }}</h2>
  <ul class="dropdown-menu dropdown-menu-right myDropdown" role="menu" style="border-radius:0">
    <li data-ng-repeat="year in YearList"><a data-ng-click="summers.summer2=value">{{year}}</a></li>
  </ul>
</div>