有没有办法在Jquery / Javascript中观察变量,就像AngularJS中的情况一样?
答案 0 :(得分:1)
Angular使用摘要周期在更新变量后检测更改。例如,当您单击某个元素时,它将更改范围中的变量,并会立即触发查看以查看更改的内容。您可以使用简单的区间函数完成类似的操作:
test = "test"
要对此进行测试,只需在控制台中键入enum RGOSessionsTableType {
case Active
case Scheduled
case Finished
func instantiateViewController() -> RGOSessionsTableViewController {
var id = ""
switch self {
case .Active: id = "ActiveSessionsTVC"
case .Scheduled: id = "ScheduledSessionsTVC"
case .Finished: id = "FinishedSessionsTVC"
}
return UIStoryboard(name: "MainView", bundle: nil).instantiateViewControllerWithIdentifier(id) as! RGOSessionsTableViewController
}
}
,您就会看到“变量已更改。”
答案 1 :(得分:0)
您可以使用obj.watch
,但目前只支持Gecko(基本上是firefox)。
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch
修改:对于Chrome,可以使用Object.observe
。
答案 2 :(得分:-1)
使用getter / setter方法:
var log = ['test'];
var obj = {
get latest () {
if (log.length == 0) return undefined;
console.log('getting latest!'); // or trigger an event
return log[log.length - 1]
}
}
console.log (obj.latest); // Will return "test".
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/get