将Angular JS数据传递给按钮OnClick事件

时间:2014-06-03 03:27:40

标签: javascript asp.net-mvc angularjs razor

是否可以将js页面上可用的有角度cshtml数据传递给按钮点击事件?

角度js对象被引用为item.property. {{item.property}}在html标记之间很好用。

功能是:

function ShowFileDialog(ProjectID)
{
    alert(ProjectID);

}

我想做的cshtml是这样的,但显然是非常错误的。

<button id="button-view" onclick="ShowFileDialog({{item.projectId}})"></button>

我已经有了解决方法 - 所以不需要其他人。

2 个答案:

答案 0 :(得分:1)

在你的控制器中,

$scope.project= {"Id": 1, "name":"project1"};
$scope.ShowFileDialog = function(ProjectID)
    {
        alert(ProjectID);
    }

然后在你的HTML中,

<button id="button-view" ng-click="ShowFileDialog(project.Id)">show dialog</button>

如果你有这样的项目清单,

$scope.projects= [{"Id": 1, "name":"project1"},{"Id": 2, "name":"project2"}];

然后在你的html中使用ng-repeat as,

<ul>
    <li ng-repeat="proj in projects>
        {{proj.name}} <button ng-click="ShowFileDialog(proj.Id)">show dialog</button>
    </li>
</ul>

see more here

答案 1 :(得分:0)

从我的POV中不应该做这些类型的混音。最接近的正确方法应该是:

使用以角度为单位的值设置视图

<input type="text" ng-model="myVariable" id="myVar" />

如果您想获得或使用此值,请从视图获取,例如:

<script type="text/javascript">  
    var param1 = document.getElementById("myVal").value;
    samplefunction( param1 );   
</script>

<强> Online Demo

  

注意:   在此示例中,我使用了input,但您可以使用data- myVar 属性并从中获取值。