Javascript 我想更改<;部门>;动态标记

Javascript 我想更改<;部门>;动态标记,javascript,html,angularjs,cordova,ionic-framework,Javascript,Html,Angularjs,Cordova,Ionic Framework,如何根据音频动态更改标记中的文本?我有一个音频文件的文本,并有该文本将在音频中出现的时间。在特定时间,文本应该更改 我试图用下面的代码来做,但是文本没有显示在标记中 var refreshIntervalId = setInterval(function(){ media.getCurrentPosition(function(position){ if(position > 0){ // position is current position of audio

如何根据音频动态更改
标记中的文本?我有一个音频文件的文本,并有该文本将在音频中出现的时间。在特定时间,文本应该更改

我试图用下面的代码来做,但是文本没有显示在
标记中

var refreshIntervalId = setInterval(function(){
  media.getCurrentPosition(function(position){
    if(position > 0){
      // position is current position of audio which is playing
      if(position < 2.40) {
        console.log("Lets sit comfortably easily");
        $scope.profile.text = "Lets sit comfortably easily";
      } else {
        $scope.profile.text = "Lets close our eyes";
      }
    }
  }, function(error){
    console.log(error);
  })
}, 1000);
var refreshIntervalId=setInterval(函数(){
media.getCurrentPosition(函数(位置){
如果(位置>0){
//位置是正在播放的音频的当前位置
如果(位置<2.40){
console.log(“让我们轻松地坐着”);
$scope.profile.text=“让我们轻松坐着”;
}否则{
$scope.profile.text=“让我们闭上眼睛”;
}
}
},函数(错误){
console.log(错误);
})
}, 1000);
控制台正在打印,但文本未显示在
标记中

var refreshIntervalId = setInterval(function(){
  media.getCurrentPosition(function(position){
    if(position > 0){
      // position is current position of audio which is playing
      if(position < 2.40) {
        console.log("Lets sit comfortably easily");
        $scope.profile.text = "Lets sit comfortably easily";
      } else {
        $scope.profile.text = "Lets close our eyes";
      }
    }
  }, function(error){
    console.log(error);
  })
}, 1000);
请分享您对为什么会发生这种情况的想法。

$(“#myDivId”).text(“我的新文本”)

不要使用setinterval, 必须使用$interval角度函数

$interval

setinterval不在角度上下文范围内,因此对于每个计时器,请在“未更新”中勾选界面


$interval将在内部为每个计时器刻度调用$apply函数,自动更新视图。

只需使用
$scope.$apply()

var refreshIntervalId=setInterval(函数(){
media.getCurrentPosition(函数(位置){
如果(位置>0){
//位置是正在播放的音频的当前位置
如果(位置<2.40){
console.log(“让我们轻松地坐着”);
$scope.profile.text=“让我们轻松坐着”;
}否则{
$scope.profile.text=“让我们闭上眼睛”;
}
$scope.apply();
}
},函数(错误){
console.log(错误);
})
}, 1000);

谢谢。

请添加您的HTMLY您应该在问题中添加angularjs标记stack OP中没有使用jQuery为什么使用jQuery而不是angularjs?不够原始,无法进行向下投票。为什么要重复你前面那个人说的话?加上理由有助于OP理解为什么。。。因为它将在内部调用
$apply()
,并且setInterval()在angular Context之外,所以您不会为每个计时器刻度调用apply(),我没有在你的代码中看到它。很高兴帮助你我不是那个提出问题的人…我添加了一些评论,建议解释为什么要使用
$interval
来获得更完整的答案。请使用
$interval
。它将负责内部调用$scope.apply();从计时器来看,它不是一个更好的粒子,为了方便起见,AngularJS提供了$timeout和$interval,就像setTimeout和setInterval一样。显然我们必须使用$interval来代替setInterval,但我试图解决没有$interval的setInterval函数的问题。