小编djl*_*ley的帖子

Outlook 2016 for Mac中的Office.context.ui.messageParent是否已损坏?

我正在使用新的Office-JS apis开发Outlook插件,并且在构建身份验证流程时,我发现在Outlook 2016 for Mac案例中,对话框系统似乎无法正常工作.

为了清楚起见,我们正在使用Office Insider Fast Track构建,因为它大大改进了对Office-JS API的支持.

我经历了这个特定部分的几次迭代(其中大多数在Windows客户端和Mac和Win上的Web客户端都运行良好),并且没有运气.场景是:

  1. 项目清单
  2. 在outlook中打开任务窗格.
  3. 点击登录按钮
  4. 打开一个新窗口,指向我们的身份验证门户
  5. 用户登录.
  6. 在auth完成时,窗口重定向到office外接作用域中的页面,并使用auth令牌回调父帧,可以在其中进一步处理.

步骤1到5在所有平台上都能正常工作.第6步拒绝使用Outlook for Mac.最初,此流程是使用本机js window.open和window.postMessage apis构建的.如上所述,除了Outlook Mac之外,这个工作无处不在,其中,API似乎忽略了窗口选项,只是在任何打开的浏览器中打开新选项卡中的url并且从不设置子窗口引用(window.open的结果为null ).

如果做不到这一点,我按照SO上的建议来使用Office功能,displayDialogAsync和messageParent.在一些初步障碍之后,这也是设置并在除了Outlook Mac之外的每个平台上工作.

由于Mac Outlook中没有开发工具或JS控制台支持,我按照此处的建议操作:Outlook 2016 for Mac - 调试/查看控制台登录Outlook加载项并设置Vorlon以尝试获取一些上下文,添加大量日志记录指向尝试并获得一些背景.不幸的是,虽然Vorlon确实将我的身份验证登陆页面作为客户端,并且看到了Office界面,但我的控制台输出都没有显示出来,这使得JS看起来好像根本没有运行.

在这一点上,我不知道下一步该尝试什么.有没有人遇到过这个问题,或者是在Outlook 2016 for Mac客户端上工作?

澄清背景:

  • 所有身份验证页面都列在Manifest的AppDomains部分中.
  • 虽然初始版本直接指向我们的auth服务(这不适用于Mac),但当前版本首先打开一个范围内的预认证页面,该页面重定向到auth服务.
  • Office-JS api的阻止警报,阻止它们用于显示有用信息.
  • 通过此应用程序的所有版本进行身份验证已在Windows上的Outlook 2016和Win和Mac上的OWA上运行.

谢谢.

macos office-addins office-js outlook-2016 office-store

13
推荐指数
1
解决办法
690
查看次数

未定义的局部变量或方法'current_user'

我目前正在阅读一个RoR教程(http://railstutorial.org/chapters/sign-in-sign-out#sec:signin_success是相关部分),这似乎相当不错,尽管我遇到过尝试查看示例站点时出现以下问题.

Extracted source (around line #10):

7:          <li><%= link_to "Home", root_path %></li>
8:          <li><%= link_to "About", about_path %></li>
9:          
10:             <% if signed_in? %>
11:                 <li><%= link_to "Profile", current_user %></li>
12:                 <li><%= link_to "Sign out", signout_path, :method => delete %></li>
13:             <% else %>
Run Code Online (Sandbox Code Playgroud)

如您所见,问题源于我的方法"signed_in?" 应该通过检查current_user变量是否已设置来检查用户是否已登录(我已经包含了来自帮助程序的其余代码以提供上下文,道歉):

module SessionsHelper

  def sign_in(user)
    cookies.permanent.signed[:remember_token] = [user.id, user.salt]
    current_user = user
  end

  def sign_out
    cookies.delete[:remember_token]
    current_user = nil
  end

  def current_user= (user)
    @current_user ||= user_from_remember_token
  end

  def signed_in?
    !current_user.nil?
  end

  private

    def …
Run Code Online (Sandbox Code Playgroud)

variables ruby-on-rails

12
推荐指数
1
解决办法
2万
查看次数

在同一个表上连接两个不同聚合函数的结果

我正在尝试组合两个查询,以便确定在特定时间(2011-09-19 04:00:00.000)之前哪个飞机将在特定点(点ABCD).到目前为止,我生成了最后一架飞机到达这一点,以及飞机最后一次离开该点.我目前的想法是,如果它最后一次到达的时间大于它最后一次离开飞机仍然在指定时间之前的ABCD点.

第一个查询查找飞机最后一次到达某个点:

select aircraft_id, MAX(arrival_datetime) as last_arrival
from flight_schedule
where arrival_datetime < '2011-09-19 04:00:00.000' and arrival_point='ABCD'
group by aircraft_id
Run Code Online (Sandbox Code Playgroud)

第二个查询找到飞机最后一次离开这一点:

select aircraft_id, MAX(departure_datetime) as last_departure
from flight_schedule
where departure_datetime < '2011-09-19 04:00:00.000' and departure_point='ABCD'
group by aircraft_id
Run Code Online (Sandbox Code Playgroud)

这两个查询都会生成相应的响应.我意识到为了比较last_departure和last_arrival字段,我需要以某种方式加入表.

我不是一个SQL专家,在过去任何表连接我已经完成了两个完全不同的表之间并没有涉及任何聚合函数所以我的正常子查询和结构没有工作.

sql

6
推荐指数
1
解决办法
1万
查看次数

Ruby on Rails - 缓存变量

我在控制器中设置了这两个变量.如何缓存这些,以便它们不会每次都与数据库通信,而只是第一次.

@tablenutrients = Nutrient.find(:all)
@columnnutrients = @tablenutrients.collect {|x| x.nutrient}
Run Code Online (Sandbox Code Playgroud)

ruby activerecord memcached caching ruby-on-rails

6
推荐指数
1
解决办法
5702
查看次数

Bundle install从错误的目录运行

我正在thor为一些内部项目构建一个基于简单的生成器,似乎无法bundle install从正确的目录运行.

当我运行新的[APP_NAME]功能时,它应该创建目录和文件,然后运行bundle install以安装应用程序所需的gem.

生成器功能的来源:

def create
  puts "Creating application #{name}"

  directory 'application', "#{name}"

  Dir.chdir("#{Dir.pwd}/#{name}") do
    puts `bundle install`
  end
end
Run Code Online (Sandbox Code Playgroud)

并且控制台输出来自运行调用此create方法的命令:

$ bundle exec bin/my_gem new test_app
Creating application test_app
      create  test_app
      create  test_app/Gemfile
      create  test_app/Guardfile
      create  test_app/README.md
      create  test_app/app/controllers
      create  test_app/app/helpers
      create  test_app/app/models
      create  test_app/app/views
Using thor (0.14.6) 
Using my_gem (0.0.1) 
Using bundler (1.1.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. …
Run Code Online (Sandbox Code Playgroud)

ruby gem bundler rvm thor

4
推荐指数
1
解决办法
2469
查看次数

this.each没有正确地迭代集合

我刚刚开始使用backbone.js,我正在添加一些基本方法来扩展一个集合,允许我遍历一个集合并保存所有模型,并迭代一个集合来销毁所有模型.我意识到批量更新不是RESTful,但我只是更新到本地存储,所以不认为进行多次更新会是一个问题.

在我的基础应用程序中,该集合有9个模型.当我调用collection.saveModels()时,它会正确记录集合的长度,并正确保存所有模型.

当我调用collection.deleteModels()时,它会正确记录集合的长度,但会跳过每秒模型(即第2,第4,第6,第8).每次按下删除时,它继续只删除奇数索引元素,最后一个要删除的项目是第8个原始项目.

是否有可能我错误地使用了每个功能,尽管它在保存时工作得很好?

_.extend(Backbone.Collection.prototype, Backbone.Events, {
saveModels  :   function() {
    console.log(this.length);
    this.each(function(model){
        console.log('saving model ' + model.get('name'));
        model.save();
    });
},
deleteModels    :   function() {
    console.log(this.length);
    this.each(function(model){
        console.log('deleting model ' + model.get('name'));
        model.destroy();
    });
}
});
Run Code Online (Sandbox Code Playgroud)

他们被这样称呼:mycollection.saveModels();mycollection.deleteModels();

我意识到我可以根据长度迭代集合,但我宁愿在可能的情况下使用内置方法.

javascript arrays local-storage backbone.js

2
推荐指数
3
解决办法
5879
查看次数

使用jQuery确认表单提交

我想在表单提交之前显示一个警告框.

如果用户按是,则表单将提交,否则不会.有没有使用jQuery的解决方案?

jquery form-submit

0
推荐指数
1
解决办法
1万
查看次数