小编Tou*_*shi的帖子

Angularjs sessionStorage和范围

有人知道为什么我的范围变量没有更新?这令我难以置信.sessionStorage变量很好,但是当我在范围变量中定义它们时,我得到"未定义"错误.我已经修改了$ scope.$ apply但显然范围已经消化了......:S请帮助一个新手.

  if(sessionStorage.loggedIn){

    $scope.user = sessionStorage.user;  
    $scope.user.gravatar = sessionStorage.gravatar;
    console.log($scope.user.gravatar);
    console.log('Session variable is active');
    $scope.loggedIn = sessionStorage.loggedIn;

  }
Run Code Online (Sandbox Code Playgroud)

完整代码:

app.controller('loginCtrl', ['$scope','$route','Auth','$modal','$timeout', function($scope,$route,Auth,$modal,$timeout){

  if(sessionStorage.loggedIn){

    $scope.user = sessionStorage.user;  
    $scope.user.gravatar = sessionStorage.gravatar;
    console.log($scope.user.gravatar);
    console.log('Session variable is active');
    $scope.loggedIn = sessionStorage.loggedIn;

  }

  $scope.login = function(){
    Auth.save({
      'username': $scope.username,
      'password': $scope.password
    },function(data) {
      $scope.loggedIn = true;
      $scope.user = data.user;
      $scope.user.gravatar = data.gravatar;

      sessionStorage.loggedIn = $scope.loggedIn;
      sessionStorage.user = data.user; 
      sessionStorage.gravatar = data.gravatar;
      $route.reload();

    },function(response){
      $scope.flash = response.data.flash;   
      $scope.pop = true;    
      $timeout(function(){$scope.pop = false;}, 3000);
    }) …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

25
推荐指数
2
解决办法
9万
查看次数

JavaScript正则表达式 - 积极前瞻 - 给我语法错误

这段正则表达式(?<=href\=")[^]+?(?=#_)应该匹配href值中的所有内容,除了哈希值以及href url中的哈希值.它似乎在Regex调试器/测试器(如http://gskinner.com/RegExr/)下正常工作, 但在javascript中似乎会产生语法错误.如果我删除<(?<=)它的工作原理然而,这不是我期待的积极前瞻.

由于正则表达式lol,我像往常一样脱掉头发

请帮忙

javascript regex

3
推荐指数
1
解决办法
7332
查看次数

jQuery的; 新图片()的Chrome图片宽度和高度= 0

我无法让Chrome在DOM加载后识别图像宽度或高度.Image通过phpThumb脚本(调整图像大小)动态加载.如果我拿走动态网址并将其替换为图片的直接网址我没有任何问题,一切都可以在Chrome中运行但是使用动态网址时,Chrome似乎无法计算图片的宽度或高度.

有人对此有经验吗?它正在努力.

有问题的代码是:

var theImage     = new Image();
theImage.src     = $image.attr('src');
var imgwidth     = theImage.width;
var imgheight    = theImage.height;
Run Code Online (Sandbox Code Playgroud)

其中imgwidth = 0; 对于chrome,但IE,Firefox都报告了正确的大小.

jquery google-chrome image phpthumb

3
推荐指数
1
解决办法
7392
查看次数

React Hooks,useEffect 中的 setTimeout 直到结束才触发,因为状态更新

语境

  • 添加新消息(例如,每两秒一次,使用 setInterval)。
  • 消息有状态,可以是旧的,也可以是新的。新添加的消息有一个“新”标志。
  • 每 5 秒后,所有“新”消息都会被指定为“旧”消息。(设置超时)

问题

  • 直到结束才触发超时。添加新消息,但在添加所有消息之前它们仍保持“新”状态。
  • 我怀疑每次更新后超时都会被重置/清除,并且因为更新发生的速度比超时快,所以超时回调永远不会及时触发(因此只有最终的超时被触发)。

function useInterval(callback, delay) {
  const savedCallback = React.useRef();
  // Remember the latest callback.
  React.useEffect(() => {
    savedCallback.current = callback;
  }, [callback]);
  // Set up the interval.
  React.useEffect(() => {
    function tick() {
      savedCallback.current();
    }
    if (delay !== null) {
      let id = setInterval(tick, delay);
      return () => clearInterval(id);
    }
  }, [delay]);
}

const defaultMessages = [
  {
    message: "message 1",
    new: false
  },
  {
    message: "message 2",
    new: …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout setinterval reactjs react-hooks

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