例如,我有一个角度表达式:

{{download.name}}


我想获取其实际值而不是其引用“ demo.txt”。该元素是这样生成的。其值随范围而变化。

<div ng-repeat="download in getDownloads()" />


当我写这样的东西时,该值是正确的。

<span class="input-group-addon" ng-model="name">{{openTokenPanel.name}}</span>


但是,如果我尝试在其他地方使用它,则输出是错误的。(我得到了“ Aria2 WebUI”)

 modalScope.$download = function(){
              var filename = modalScope.name;
              console.log(filename);
          };


我该怎么办?
了解更多信息。见https://github.com/ziahamza/webui-aria2
我正在修改这个项目。最后的代码块添加在“ js / libs / angularui-bootstrap.js”中。其余的添加在“ index.html”中

该按钮是这样的:

 <button class="btn btn-default btn-primary"  id="download_now" ng-click="$download()">
 Download Now!
 </button>


由于DfKimera的建议,我解决了这个问题:


  在ng-repeat的HTML块中找到$ download函数被调用的位置(可能是ng-click的下载按钮),对其进行修改以包含> download变量,例如:ng-click =“ $ download(download )”


就我而言,我对代码做了如下更改:

<button class="btn btn-default btn-primary"  id="download_now" ng-click="$download(download)">
 Download Now!
 </button>


JS代码:

modalScope.$download = function(download){
              var filename = download.name;
              console.log(filename);
          };

最佳答案

您实际要做的是修改对$download()的调用,以便传递download对象。这样,访问download.name将产生相应的变量。

仅使用范围(modalScope对象)是没有可靠的方法,因为它仅引用最后一个范围状态,而不引用ng-repeat的内部状态。

关于javascript - 如何获得 Angular 表达式的实际值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41024005/

10-12 00:01