呼叫JavaScript功能时
我有这样的代码:呼叫JavaScript功能时
<ion-content> <ion-list>
<ion-item > 订单号 餐桌 顾客姓名 顾客电话号码 配送地址 订单备注 下单时间 </ion-item>
<ion-item ng-repeat="x in orders|orderBy:'order_id'">
{{ x.order_id + ', ' + x.table_id+', '+x.name+', '+x.phone+', '+x.address+', '+x.remark+', '+changTimetoString(x.ctime)}}
<button onclick="window.viewOrderDetails(x.detail)">Order detail</button>
</ion-item>
</ion-list>
</ion-content>
在app.js:
app.controller('customersController', ['$scope', '$http', function($scope,$http) { $http.get("http://18ff2f50.tunnel.mobi/yii2-basic/tests/Customers_JSON.json")
.success(function (response)
{
console.log("debug",response);
$scope.orders = response;
});
window.viewOrderDetails = function viewOrderDetails(detail) {
var newWin = open('orderdetails.html','windowName','height=300,width=300');
newWin.document.write('html to write...');
newWin.document.write(detail);
}
欲x.detail作为窗口的输入参数。查看订单详情。
但是,当我点击按钮“订单明细”,它说“x未定义”。 我想知道问题在哪里。谢谢。
回答:
这一点很难说,但我猜问题这里是x不被解析,因为onclick
只是一个香草javascript表达式,而不是一个角度表达式。有什么不同?
你现在拥有的东西就是纯粹的javascript,而angular有它自己的语言(它非常非常接近javascript),它在它的指令表达式中使用。 X对Angular而言意味着某种东西,但对于普通的JavaScript来说则不然那么如何解决这个问题?有两种方法。
首先是您可以更改您的button
元素以添加ng-click。像这样。
<button ng-click="viewOrderDetails(x.detail)">Order detail</button>
然后为您的控制器添加以下方法。
$scope.viewOrderDetails = function viewOrderDetails(detail) { var newWin = open('orderdetails.html','windowName','height=300,width=300');
newWin.document.write('html to write...');
newWin.document.write(detail);
}
所以,现在,因为角度看,它有一个ng-click
指令,它会知道解析X为你迭代通过数组中的当前对象之一。
正如其他人所说,你也可以使用它。
<button onclick="window.viewOrderDetails({{x.detail}})">Order detail</button>
这是完全有效的,但我认为,如果你要建立一个角度应用程序,你应该把类似viewOrderDetails在控制器中,并使其角部分。这只是更好的组织。
但是,这种方式的工作方式是{{ }}
告诉角度来插入和解析它们中的任何内容。所以虽然angular并没有在点击时评估整个javascript表达式,但它现在知道继续,用正确的对象替换{{}}
中的x,因为它会尝试解析它在大括号中看到的任何内容。
回答:
试着改变你的点击处理程序如下:
<button onclick="window.viewOrderDetails('{{ x.detail }}')">Order detail</button>
回答:
你必须附上x.details在大括号
<button onclick="window.viewOrderDetails('{{x.detail}}')">Order detail</button>
以上是 呼叫JavaScript功能时 的全部内容, 来源链接: utcz.com/qa/266177.html