小编Dan*_*try的帖子

为什么我需要在AngularJS中输入名称和ng-model?

我只是想知道为什么我必须在表单中指定两个nameng-model输入元素才能正确使用它.例如,具有以下内容:

  <form name='test'>
      <div>
          <input type='radio' 
              value='create-new'
              ng-model='toggle'
              required />

          <input type='radio' 
              value='use-existing'
              ng-model='toggle'
              required />
      </div>
      <div ng-switch='test.$invalid'>
          <div ng-switch-when='true'>Invalid!</div>
          <div ng-switch-when='false'>Valid!</div>
      </div>
  </form>
Run Code Online (Sandbox Code Playgroud)

Invalid!当我没有选择单选按钮时,我会得到输出- 这是正确的行为.但是,缺点是我可以访问此模型的唯一方法是$scope.toggle- 元素本身不会通过$scope.test(表单容器)中的名称进行引用.$scope.test 包含验证规则toggle,但它不会让您知道那些验证规则属于toggle名称不存在.

如果我们要切换它,请在输入上放置一个name属性:

  <form name='test'>
      <div>
          <input type='radio' 
              value='create-new'
              name='toggle'
              required />

          <input type='radio' 
              value='use-existing'
              name='toggle'
              required />
      </div>
      <div ng-switch='test.$invalid'>
          <div ng-switch-when='true'>Invalid!</div>
          <div ng-switch-when='false'>Valid!</div>
      </div>
  </form>
Run Code Online (Sandbox Code Playgroud)

然后我们ng-switch在底部将始终显示有效,即使我已经提到输入本身是必需的.另外,toggle现在显示在里面$scope.test,所以我可以检查$scope.test.toggle其他地方的有效性(不需要该元素的内联属性). …

angularjs

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

使用CompilerParameters引用当前程序集

现在我正在开发一个项目,团队想要一种编写代码并编辑它的方法,而不必重新编译整个项目,所以我决定尝试实现一个脚本引擎.

之前将Lua实现到C++之后,我并不是一个将脚本功能实现到项目中的新手.但是,我们希望尝试使用Microsoft.CSharp命名空间直接实现C#,并结合已内置于C#的System.Reflection.

所以听说过这个,我在文档中讨论过,我已经提出了ALMOST工作的原型 - 但并不完全.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;

namespace Scripting
{
    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder builder = new StringBuilder();
            builder.Append("using System;");
            builder.Append("using Scripting;");
            builder.Append("class MyScript : IScript");
            builder.Append("{");
            builder.Append("    string ScriptName");
            builder.Append("    {");
            builder.Append("        get { return \"My Script\"; }");
            builder.Append("    }");

            builder.Append("    public bool Initialize()");
            builder.Append("    {");
            builder.Append("        Console.WriteLine(\"Hello, World!\");");
            builder.Append("        return true;");
            builder.Append("    }");
            builder.Append("}");

            CSharpCodeProvider provider = new CSharpCodeProvider();
            CompilerParameters param …
Run Code Online (Sandbox Code Playgroud)

c# reflection scripting

10
推荐指数
1
解决办法
4773
查看次数

我需要将两个非常大的集合与可能缺少的元素进行比较

我在为我的工作写的一个程序中遇到了一堵砖墙.你不需要特别了解上下文,但长话短说,我有两个大约约650k记录的集合.

我们假设集合A是我认识的正确的集合,集合B是我知道的不正确的集合.

集合B包含一个复杂的对象,它具有与集合A中的元素相同类型的属性(换句话说,它看起来有点像这样):

// Where T : IComparable
IEnumerable<DateTime> A = ...; // Collection of T elements
IEnumerable<Complex> B = ...; // Collection of complex elements.
class Complex<DateTime>
{
   public DateTime Time { get; set; }
   .....
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我基本上需要按顺序枚举A并查看A的当前元素是否存在于B中的Complex对象中; 如果它不存在,那么我需要创建一个Complex对象,它将封装该元素(以及其他内容).

当我意识到这两个列表长度为650,000个元素时,会出现问题.我无法减少数据集; 我必须使用这些650,000.现在我已经使用了ICollection.Contains(),我尝试了(天真)二进制搜索的实现,但它只需要太长时间.

你有什么建议吗?

编辑:如果有帮助,T实现IComparable.EDIT2:更多上下文:使用Linq To Objects从DataTable中检索IEnumerable.

        IEnumerable<Complex> set = set.Tbl
            .Where(dbObject => dbObject.TS.CompareTo(default(DateTime)) != 0)
            .Select(Func<DataRow,Complex>) // Function that wraps the DataRow in a Complex object
            // Just done to make debugging a little easier so we still …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

Floor(X)modulo X等于X?

快速的问题.我基本上正在开发一个程序,我们有一个实体跨越网格.每次完成"步骤"(即从(0,0)到(1,0)),我都需要触发一个事件.每帧实体的移动计算方法如下:

frameMovement = entitySpeed * (frameDeltaMs / 1000)
Run Code Online (Sandbox Code Playgroud)

然后添加到实体的X坐标上.我选择使用世界单位(1个世界单位是16个像素)而不是原始像素用于坐标系统,仅仅是为了分离关注点.世界不需要知道一个正方形的距离是16像素 - 只有绘图系统才有.

所以基本上,我正试图弄清楚如何告诉系统该单元已完成"步骤".显然,由于帧运动的计算方式,你永远不会完全在一个新的正方形上,所以我必须将单位"剪辑"到那个正方形,或者如果我们在一定的距离内,有一个方法会返回"true"从广场(现在我决定是0.05wu - 距离广场大约0.8像素).

到目前为止我的功能是这样的:

return Math.floor(x) % x == 0;
Run Code Online (Sandbox Code Playgroud)

我只是在使用X看,因为我只是想让它正常工作.但是我遇到的问题是这个函数似乎返回了两个结果之一:

x = 0f;
System.out.println(Math.floor(x) % x);
> NaN
Run Code Online (Sandbox Code Playgroud)

这是预期的,因为0%0确实是NaN.我可以解决这个问题.但是我目前的问题是另一个结果..

x = 1f; // Or any number with 1sd > 0
System.out.println(Math.floor(x) % x);
> 1f
Run Code Online (Sandbox Code Playgroud)

也就是说,另一个结果总是返回X的值,而不是正确的模数(如果math.floor(x)和x相等 - 即x等于1f),它应该是0.

我不完全确定导致这种情况的原因.如果您对我有任何答案或有关如何以更好的方式解决这个问题的任何建议,我会全力以赴.

TL; DR:我需要弄清楚实体何时从一个坐标移动到下一个坐标.坐标(以及实体跨越它们的过渡)存储为浮点数.如果实体在遍历正方形的中途,则实体的X坐标存储为1.5.最后,Floor(1.0)%1.0返回1.0,而不是0.

编辑:

在我的代码中我有这个

    System.out.println("x equals " + x + ". Math.floor(x)%x==Math.floor(x): "+(Math.floor(x)%x==Math.floor(x)));
Run Code Online (Sandbox Code Playgroud)

输出http://pastebin.com/egDwj7Gs

编辑2:图像很有趣!

http://prntscr.com/1j193n

白色方块是实体.红色方块只是一个绘制的网格.每个方格是16乘16.

如你所见,现在白色方块位于(6.5,0).我需要程序基本上识别它何时通过(7,0).

编辑:李和我聊天,这是我们的聊天:http: //chat.stackoverflow.com/rooms/34727/discussion-between-neglected-and-lee-meador

他为我解决了这个问题所以我接受了他的回答是正确的.

        float after = pos.x+changeInPosition;

        if …
Run Code Online (Sandbox Code Playgroud)

java

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

我如何才能在黄瓜中最好地表达这种与时间相关的情景?

我一直在努力学习Ruby中的Cucumber,我认为最好的方法就是创建自己的项目.但是,我想知道什么是一个好的"给定"条款.

据我所知,"给定"基本上是一个设置,"当"是被测试的功能,"然后"是预期的结果.

例如,让我们假设我正在基于踩着熔岩的实体制作一个Minecraft场景.我目前的GWT看起来像这样:

Scenario: Take damage when I stand in lava.
  Given an entity is standing next to a block of lava with 10 health
  When the entity steps in the block of lava
  Then the entity should take 2 damage
Run Code Online (Sandbox Code Playgroud)

然而,这个"给定"步骤看起来相当'关闭'.我不得不站在一块熔岩旁边让这个场景发挥作用.同样 - 我将如何编写(并测试)一个应该经常发生的场景的GWT - 例如,我怎样才能确保只要我的实体保持在熔岩中,它将继续受到损害?我发现很难编写能够测试实体在熔岩中存放多久的代码.系统如何知道实体在熔岩中停留了多长时间?在我看来,测试那种东西需要我几乎写下世界其他地方,以便能够说"这个实体已经在熔岩中持续x秒,推进模拟,我失去了多少马力"

思考?

ruby bdd scenarios acceptance-testing cucumber

5
推荐指数
1
解决办法
646
查看次数

在 Jest 测试用例中使用 React Apollo 时“无法读取属性 _location of null”

给定以下组件:

export function App() {
  return withApollo(<BrowserRouter>
    <MatchListRouteHandler />
  </BrowserRouter>);
}

// MatchListRouteHandler
export const Query = addTypenameToDocument(gql`
  query GetMatches {
    matches {
      id
    }
  }
`);

export default graphql(Query)(MatchListRouteHandler);
Run Code Online (Sandbox Code Playgroud)

和测试用例:

it('renders without crashing', () => {
  const div = document.createElement('div');
  ReactDOM.render(<App />, div);
});
Run Code Online (Sandbox Code Playgroud)

当 Jest 尝试运行测试用例时,我收到以下错误:

/home/dan/match-history-analyser/node_modules/jsdom/lib/jsdom/browser/Window.js:148
      return idlUtils.wrapperForImpl(idlUtils.implForWrapper(window._document)._location);
                                                                              ^

TypeError: Cannot read property '_location' of null
    at Window.get location [as location] (/home/dan/Projects/match-history-analyser/node_modules/jsdom/lib/jsdom/browser/Window.js:148:79)
    at Timeout.callback [as _onTimeout] (/home/dan/Projects/match-history-analyser/node_modules/jsdom/lib/jsdom/browser/Window.js:525:40)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)
Run Code Online (Sandbox Code Playgroud)

javascript react-apollo

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

如何在打字稿中执行 document.getElementById().value 之类的操作?

我有一些代码,其中包含一个反应表单,其中包含类似以下内容:

<input id="region"></input>
Run Code Online (Sandbox Code Playgroud)

我有一个通过单击按钮调用的函数,我想获取 id“region”的值。

我已经看到据说我可以做这样的事情:

let test : string = <HTMLInputElement>document.getElementById(region).value;
Run Code Online (Sandbox Code Playgroud)

但我可以验证8种方法到周日行不通。如果我尝试这样做,我会收到语法错误,提示缺少逗号。

那么有没有办法做到这一点呢?我缺少什么?把我当白痴吧,因为我只用了 48 小时打字。

typescript reactjs

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

在Lua中实现延迟执行?

我一直想知道是否可以在 Lua 中实现延迟执行(.NET Linq 风格),只是为了好玩。

在 .NET 中,我们可以创建一系列元素,称为IEnumerable. 然后可以通过各种方式过滤这些元素,例如 map/reduce ( Select(predicate), Where(predicate)),但这些过滤器的计算仅在您枚举 IEnumerable 时执行 - 它被推迟。

我一直在尝试在 Lua 中实现类似的功能,尽管我对 Lua 很生疏并且已经有一段时间没有接触它了。我想避免使用已经为我执行此操作的库,因为我希望能够尽可能在纯 Lua 中执行此操作。

我的想法是,也许可以使用协程。

Enumerable = {

  -- Create an iterator and utilize it to iterate
  -- over the Enumerable. This should be called from
  -- a "for" loop.
  each = function(self)
    local itr = Enumerable.iterator(self)
    while coroutine.status(itr) ~= 'dead' do
      return function() 
        success, yield = coroutine.resume(itr)
        if success then
          return yield
        else
          error(1, "error …
Run Code Online (Sandbox Code Playgroud)

lua lazy-evaluation deferred-execution

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

{}和[]之间的Javascript差异

我正在研究javascript,我遇到了这个问题:

如果我做

let object = {};
object.length
Run Code Online (Sandbox Code Playgroud)

它会抱怨object.length未定义但是

let object = [];
object.length 
Run Code Online (Sandbox Code Playgroud)

作品

谁知道为什么?

谢谢

javascript

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

在Rx中安排定期事件的正确方法是什么?

简单的问题,我希望:我正在编写一个应用程序,我想从数据库中检索数据; 为此,我选择使用Rx将数据库表示为一系列值.

我只想轮询数据库(因此发生我的观察者的通知)最多每5秒一次.现在,我有这样的事情,调度程序正在安排一个周期性任务,导致我的观察者订阅我的数据库的observable:

_scheduler.SchedulePeriodic(_repository, TimeSpan.FromSeconds(5),
    (repo) => repo.AsObservable()
        .Where(item => _SomeFilter(item))
        .Subscribe(item => _SomeProcessFunction(item))
);
Run Code Online (Sandbox Code Playgroud)

为简洁起见省略了功能名称等; repo.AsObservable()只是一个函数,它返回IObservable<T>存储库中所有项目的一部分.

现在,我认为这是正确的做事方式,但是在我提出这个解决方案之前,我确实提出了一个不同的解决方案,其中我Observable.Timer订阅的观察者会订阅AsObservable()每个计时器滴答的返回值.

我的问题是,这看起来很奇怪 - 为什么我多次订阅这个可观察的?

对不起,如果这个问题令人困惑,它在编写时会让我感到困惑,但调度程序对我来说也很困惑:P

c# system.reactive

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

模块和类之间的层次关系是什么?

在.NET中,我们有类型interfaceclass.这两种类型之间存在一些关系.在这个例子中,我们拥有.NET中的所有关系:

class Vehicle
{
}

interface IMovable
{
   void Move();
}

class Engine
{
}

class Car : Vehicle, IMovable
{
   private readonly Engine _engine;
   public Car(Engine engine) { _engine = engine; }

   public void Move() {}
}
Run Code Online (Sandbox Code Playgroud)
  • Car延伸Vehicle- aCar is-a Vehicle
  • Car工具IMovable- aCar can-do IMovable
  • Car需要Engine创造自己 - aCar has-a Engine

但我不了解Ruby的模块,因为它们具有功能,但它们不是接口(因为它们定义了方法体,因此它们更类似于子类),但它们不是超类(因为多重继承不是在Ruby中完成的) ).

有人可以帮我理解Ruby中模块的用法,并可能对.NET进行类比吗?

编辑:看到3票因重复而关闭,我必须澄清. 我问的是类和模块之间的关系是什么(假设实现接口的类是can-do在.NET中)."重复"答案并未解决该问题.

ruby

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