标签: state

Angularjs ui-router.如何重定向到登录页面

我有4种状态:dashboard,dahboard.main,dashboard.minor,login.仪表板是抽象的,它是.minor和.main状态的父状态.以下是我的代码:

.state('dashboard', {
        url: "/dashboard",
        abstract: true,
        templateUrl: "views/dashboard.html",
        resolve: {
            auth: function ($q, authenticationSvc) {
                var userInfo = authenticationSvc.getUserInfo();
                if (userInfo) {
                    return $q.when(userInfo);
                } else {
                    return $q.reject({ authenticated: false });
                }
            }
        },
        controller: "DashboardCtrl",
        data: { pageTitle: 'Example view' }
    })
    .state('dashboard.main', {
        url: "",
        templateUrl: "views/main.html",
        controller: "DashboardCtrl",
        data: { pageTitle: 'Main view' }
    })
Run Code Online (Sandbox Code Playgroud)

正如您在仪表板状态中看到的,我有解决方案选项.如果他没有被授权,我想将用户重定向到登录页面.出于这个原因,我使用特殊的authenticationSvc服务:

.factory("authenticationSvc", ["$http", "$q", "$window", function ($http, $q, $window) { …
Run Code Online (Sandbox Code Playgroud)

state config resolve angularjs angular-ui-router

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

ReactJS this.state null

让我先说一下我是ReactJS的新手.我试图通过创建一个使用React填充数据的简单站点来学习.我有一个JSON文件,其中包含将通过map循环的链接数据.

我已经尝试将其设置为组件状态,然后通过道具将其传递给导航栏链接但我得到"未捕获的TypeError:无法读取null的属性'数据'"

我试图四处寻找解决方案但找不到任何东西.

注意:当我尝试对对象进行硬编码并以这种方式映射它时,返回的映射是未定义的.但是我不确定它是否与setState错误直接相关.

/** @jsx React.DOM */

var conf = {
    companyName: "Slant Hosting"
  };

var NavbarLinks = React.createClass({
  render: function(){
    var navLinks = this.props.data.map(function(link){
      return(
        <li><a href={link.target}>{link.text}</a></li>
      );
    });
    return(
      <ul className="nav navbar-nav">
        {navLinks}
      </ul>
    )
  }
});

var NavbarBrand = React.createClass({
  render: function(){
    return(
      <a className="navbar-brand" href="#">{conf.companyName}</a>
    );
  }
});

var Navbar = React.createClass({
  getInitalState: function(){
    return{
      data : []
    };
  },
  loadNavbarJSON: function() {
    $.ajax({
      url: "app/js/configs/navbar.json",
      dataType: 'json',
      success: function(data) {
        this.setState({
          data: data
        }); …
Run Code Online (Sandbox Code Playgroud)

javascript state reactjs

54
推荐指数
4
解决办法
4万
查看次数

React setState不更新状态

所以我有这个:

let total = newDealersDeckTotal.reduce(function(a, b) {
  return a + b;
},
0);

console.log(total, 'tittal'); //outputs correct total
setTimeout(() => {
  this.setState({dealersOverallTotal: total});
}, 10);

console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total
Run Code Online (Sandbox Code Playgroud)

newDealersDeckTotal只是一个数字数组,[1, 5, 9]但是this.state.dealersOverallTotal不能给出正确的总数但是total呢?我甚至提出了超时延迟,看看是否解决了这个问题.任何明显的或我应该发布更多的代码?

javascript state setstate reactjs

54
推荐指数
10
解决办法
7万
查看次数

为什么stringstream >>在失败时改变目标值?

来自Stroustrup的TC++ PL,第3版,第21.3.3节:

如果我们尝试读入变量v并且操作失败,则v的值应该保持不变(如果v是istream或ostream成员函数处理的类型之一,则它不会改变).

以下示例似乎与上述引用相矛盾.基于上面的引用,我期待v的值保持不变 - 但它会变为零.对这种明显的矛盾行为有什么解释?

#include <iostream>
#include <sstream>

int main( )
{
    std::stringstream  ss;

    ss  << "The quick brown fox.";

    int  v = 123;

    std::cout << "Before: " << v << "\n";

    if( ss >> v )
    {
        std::cout << "Strange -- was successful at reading a word into an int!\n";
    }

    std::cout << "After: " << v << "\n";

    if( ss.rdstate() & std::stringstream::eofbit  ) std::cout << "state: eofbit\n";
    if( ss.rdstate() & std::stringstream::failbit ) std::cout << "state: failbit\n"; …
Run Code Online (Sandbox Code Playgroud)

c++ state stringstream cin

53
推荐指数
1
解决办法
2598
查看次数

React setState不立即更新

我正在研究todo应用程序.这是违规代码的一个非常简化的版本.我有一个复选框:

 <p><input type="checkbox"  name="area" checked={this.state.Pencil}   onChange={this.checkPencil}/> Writing Item </p>
Run Code Online (Sandbox Code Playgroud)

这是调用复选框的函数:

checkPencil(){
   this.setState({
      pencil:!this.state.pencil,
  }); 
  this.props.updateItem(this.state);
}
Run Code Online (Sandbox Code Playgroud)

updateItem是一个映射到dispatch to redux的函数

function mapDispatchToProps(dispatch){
  return bindActionCreators({ updateItem}, dispatch);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我调用updateItem action和console.log状态时,它总是落后一步.如果取消选中该复选框而不是true,我仍然会将true状态传递给updateItem函数.我是否需要调用另一个函数来强制状态更新?

state setstate reactjs redux

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

ASP.Net MVC和状态 - 如何在请求之间保持状态

作为一个刚刚开始使用MVC的相当有经验的ASP.Net开发人员,我发现自己正在努力将我的思维方式从传统的"服务器控件和事件处理程序"的处理方式转变为更加动态的MVC方式.我想我正在慢慢地到达那里,但有时MVC"魔法"会让我失望.

我目前的情况是创建一个网页,允许用户浏览本地文件,将其上传到服务器并重复此操作,直到他有一个要使用的文件列表.当他对文件列表(将在页面上的网格中显示)感到满意时,他将单击一个按钮来处理文件并提取将存储在数据库中的一些数据.

最后一部分并不是那么重要,现在我正在努力处理像构建文件列表这样简单的事情,并在请求之间保持该列表.在传统方法中,这将非常简单 - 数据将保存在ViewState中.但是在MVC中我需要在控制器和视图之间传递数据,而我并没有完全了解它应该如何工作.

我想我最好发布我的相当不完整的编码尝试来解释这个问题.

为了保存我的文件列表数据,我创建了一个viewmodel,它基本上是一个类型化的文件列表,还有一些额外的元数据:

public class ImportDataViewModel
{
    public ImportDataViewModel()
    {
        Files = new List<ImportDataFile>();
    }

    public List<ImportDataFile> Files { get; set; }
...
Run Code Online (Sandbox Code Playgroud)

在视图中,我有一个用于浏览和上传文件的表单:

<form action="AddImportFile" method="post" enctype="multipart/form-data">
  <label for="file">
    Filename:</label>
  <input type="file" name="file" id="file" />
  <input type="submit" />
  </form>
Run Code Online (Sandbox Code Playgroud)

该视图使用viewmodel作为其模型:

@model MHP.ViewModels.ImportDataViewModel
Run Code Online (Sandbox Code Playgroud)

这会将文件发送到我的操作:

public ActionResult AddImportFile(HttpPostedFileBase file, ImportDataViewModel importData)
    {

        if (file.ContentLength > 0)
        {
            ImportDataFile idFile = new ImportDataFile { File = file };
            importData.Files.Add(idFile);
        }

        return View("DataImport", importData);
    }
Run Code Online (Sandbox Code Playgroud)

此操作返回DataImport页面的视图以及包含文件列表的viewmodel实例.

这可以很好地工作到某一点,我可以浏览文件并上传它,我可以在动作中看到viewmodel数据,然后如果我在视图中放置一个断点并调试"this.Model",一切都是精细.

但是,如果我尝试上传另一个文件,在AddImportFile操作中放置断点时,importData参数为空.因此,视图显然没有将其模型的当前实例传递给操作.

在我经历的MVC示例中,模型实例被"神奇地"传递给action方法作为参数,那么为什么它现在为空呢? …

asp.net-mvc state action viewmodel

51
推荐指数
2
解决办法
5万
查看次数

如何在Java中实现FSM - 有限状态机

我有工作要做,我需要你的帮助.我们想要实现一个FSM - Finite State Machine,以识别char序列(如:A,B,C,A,C),并告诉它是否被接受.

我们认为,实行三类:State,EventMachine.该state班提出的一个节点FSM,我们认为有实现它State design pattern,每个节点将抽象类扩展状态和每一个类可以处理不同类型的事件,并指示过渡到一个新的状态.你认为这是个好主意吗?

第二件事,我们不知道如何保存所有过渡.我们再一次考虑用某种方式来实现它,它具有map起点并且在下一个状态下获得某种向量,但我不确定这是一个好主意.

我很乐意得到一些如何实现它的想法,或者你可以给我一些起点.

我应该如何保存FSM,这意味着我应该如何在程序开始时构建树?我用Google搜索并找到了很多例子但没有任何帮助我的东西.

非常感谢.

java state design-patterns state-machine fsm

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

React.js - 在状态中为数组添加值的最佳方法是什么

我有一个状态数组,让我们说这个.state.arr.我想在此属性中添加一些内容,然后更改一些属性.

选项1

onChange(event){
    this.state.arr.push('newvalue');
    ...
    this.setState({some:'val',arr:this.state.arr})
}
Run Code Online (Sandbox Code Playgroud)

选项2

onChange(event){
    var newArr = this.state.arr;
    ...
    newArr.push('newvalue');
    ...
    this.setState({some:'val',arr:newArr})
}
Run Code Online (Sandbox Code Playgroud)

所以..我知道this.state应该被视为不可变的.但是可以像在选项1中那样使用它,我仍然从中设置状态,或者我需要使用类似选项2的东西,因此总是首先在内存中复制

memory state reactjs

48
推荐指数
8
解决办法
13万
查看次数

ST Monad ==代码味道?

我正在努力在Haskell中实现UCT算法,这需要大量的数据杂耍.没有太多细节,它是一个模拟算法,在每个"步骤",基于一些统计属性选择搜索树中的叶节点,在该叶子上构造新的子节点,并且对应于新叶及其所有祖先都会更新.

鉴于所有这些杂耍,我并不是非常敏锐,无法弄清楚如何使整个搜索树成为Okasaki的一个不可改变的数据结构.相反,我一直在玩STmonad,创建由可变STRefs 组成的结构.一个人为的例子(与UCT无关):

import Control.Monad
import Control.Monad.ST
import Data.STRef

data STRefPair s a b = STRefPair { left :: STRef s a, right :: STRef s b }

mkStRefPair :: a -> b -> ST s (STRefPair s a b)
mkStRefPair a b = do
    a' <- newSTRef a
    b' <- newSTRef b
    return $ STRefPair a' b'

derp :: (Num a, Num b) => STRefPair s a b -> ST s …
Run Code Online (Sandbox Code Playgroud)

monads state haskell state-monad

45
推荐指数
3
解决办法
7407
查看次数

如何在代码隐藏中恢复最小化的窗口?

这有点是一个平凡的问题,但在我看来,在WPF中没有内置的方法.似乎只有WindowState作为枚举的属性没有帮助,因为我无法判断窗口是否在最小化之前处于NormalMaximized状态.

单击任务栏图标时,窗口正在按预期恢复,假设其先前状态,但我似乎无法找到任何已定义的方法.

所以我一直想知道我是否只是缺少一些东西,或者我是否需要使用一些自定义交互逻辑.

(我将发布我当前的解决方案作为答案)

wpf state window restore minimize

41
推荐指数
4
解决办法
3万
查看次数