我们可以传递哪些 .load() 常量?
What are the .load() constants we can pass?
一般来说 JavaScript 和 Office API 的新手。只是弄湿了我的脚。有很多东西要学。我看到传递给 load() 函数调用的不同字符串常量,如 "name" 或 "address"。这些是什么以及我们如何找到它们?它没有智能感知。
例如
getRange.load('address')
或
table.load("name")
TIA,
扎克·巴雷斯
之所以调用"load"方法是因为你打算在ctx.sync()之后访问它,对吧。例如,假设您有想要输出当前选择的地址的代码:
Excel.run(function(ctx) {
var range = ctx.workbook.getSelectedRange();
// <do some load on the range>
return ctx.sync().then(function() {
console.log(range.address);
})
}).catch(function(e) {
console.log(e);
})
因为您看到自己在做 range.address
(并且您应该在 IntelliSense 中看到枚举),这意味着您知道那是您应该加载的 属性 名称。事实上,如果您忘记了,您将在尝试访问它时遇到失败,它应该告诉您 属性 尚未加载。
唯一需要注意的是集合:当您执行 tables.load("name") 时,您实际上是在告诉 table 的集合 "load all your child objects, pre-fetching the name"。因此,与其直接从 table 对象中寻找 IntelliSense,不如寻找访问子属性的方式(即 tables.items[0].___)
希望这对您有所帮助,
~ Michael Zlatkovsky,Office 可扩展性团队开发人员,MSFT
一般来说 JavaScript 和 Office API 的新手。只是弄湿了我的脚。有很多东西要学。我看到传递给 load() 函数调用的不同字符串常量,如 "name" 或 "address"。这些是什么以及我们如何找到它们?它没有智能感知。
例如
getRange.load('address')
或
table.load("name")
TIA, 扎克·巴雷斯
之所以调用"load"方法是因为你打算在ctx.sync()之后访问它,对吧。例如,假设您有想要输出当前选择的地址的代码:
Excel.run(function(ctx) {
var range = ctx.workbook.getSelectedRange();
// <do some load on the range>
return ctx.sync().then(function() {
console.log(range.address);
})
}).catch(function(e) {
console.log(e);
})
因为您看到自己在做 range.address
(并且您应该在 IntelliSense 中看到枚举),这意味着您知道那是您应该加载的 属性 名称。事实上,如果您忘记了,您将在尝试访问它时遇到失败,它应该告诉您 属性 尚未加载。
唯一需要注意的是集合:当您执行 tables.load("name") 时,您实际上是在告诉 table 的集合 "load all your child objects, pre-fetching the name"。因此,与其直接从 table 对象中寻找 IntelliSense,不如寻找访问子属性的方式(即 tables.items[0].___)
希望这对您有所帮助,
~ Michael Zlatkovsky,Office 可扩展性团队开发人员,MSFT