【问题标题】:Pass Angular JS Data to Button OnClick Event将 Angular JS 数据传递给按钮 OnClick 事件
【发布时间】:2014-06-03 03:27:40
【问题描述】:

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

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

函数是:

function ShowFileDialog(ProjectID)
{
    alert(ProjectID);

}

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

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

我已经有一个解决方法 - 所以不需要其他的。

【问题讨论】:

    标签: javascript asp.net-mvc angularjs razor


    【解决方案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 作为,

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

    see more here

    【讨论】:

      【解决方案2】:

      从我的 POV 来看,这些类型的混合不应该进行。最接近的正确方法应该是:

      使用 Angular 的值来设置您的 视图

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

      如果您想获得或使用此值,请从 view 中获得它,例如:

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

      Online Demo

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

      【讨论】:

      • 我刚刚回到这个话题,它看起来很有帮助。我对 angular-js 完全陌生,所以不知道它是如何工作的或应该做什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      相关资源
      最近更新 更多