【问题标题】:When passing data from View Model through javascript function, events are not triggered通过 javascript 函数从 View Model 传递数据时,不会触发事件
【发布时间】:2018-12-24 13:23:39
【问题描述】:

我正在使用 SambaPlayer API(文档 -> http://dev.sambatech.com/documentation/player/api/metodos-e-eventos/)将视频合并到我的页面中,但为了做到这一点,我必须通过 js 传递视频 ID,这是我通过 View Model 从控制器获取的.这是我的代码:

var playerConfig = {
    height: 360,
    width: 640,
    ph: "df63f6e5bff216691764ae488e01427c",
    m: "@Model.Videos.First().IdVideo", //HERE IS WHERE IT GOES THE VIDEO ID
    events: {
        "*": "eventListener"
    },
    playerParams: {
        wideScreen: true
    }
};

var player = new SambaPlayer("player", playerConfig);
function eventListener(player) {
    alert(player.event);
}

问题是:当我像这样传递我的 id 时,视频已加载,但事件未触发。只有第一个(onLoad)是,但我需要获取其他事件,如 onFinish 和 onStart。 我已经检查了响应,当警报“@Model.Videos.First().IdVideo”时,它会正确打印 id 值。我可以使它工作的唯一方法是对 id 进行硬编码。


已解决

我找到了导致此问题的原因。出于某种原因,当我通过视图模型传递视频 ID 时,它正在添加空格,这在警报中是难以察觉的。所以我只是在控制器上的视频 id 变量中添加了 .Trim() 并且它起作用了。我不知道为什么会发生这种情况,也不知道为什么视频一直在加载,只是没有触发事件。不过,问题解决了。

【问题讨论】:

  • 你尝试在播放器初始化之前只交换 eventListener 函数吗?
  • 请将您的解决方案作为自己的答案发布,谢谢。

标签: javascript c# .net model-view-controller


【解决方案1】:

我找到了导致此问题的原因。出于某种原因,当我通过视图模型传递视频 ID 时,它正在添加空格,这在警报中是难以察觉的。所以我只是在控制器上的视频 id 变量中添加了 .Trim() 并且它起作用了。我不知道为什么会发生这种情况以及为什么视频仍然在加载而只是没有触发事件。不过,问题解决了。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 2020-04-23
    • 2022-10-18
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多