DataSet返回JavaScript AngularJS

时间:2015-11-13 00:40:42

标签: javascript c# angularjs asp.net-mvc asp.net-web-api

我需要知道如何使用AngularJS按位置获取对象,我从C#中的WebAPI返回一个带有4个DataTable的DataSet并将其保存在我的JS的$ scope中,当我在Chrome中console.log($scope.data)时控制台看起来像图像。现在,当我在Chrome控制台中console.log($scope.data[1])时,我无法确定,但当我console.log($scope.data.inputs0)时,我会看到正确的数据。怎么了?谢谢:))

enter image description here

2 个答案:

答案 0 :(得分:1)

没有$ scope.data [1]。它不是一个数组,它是一个对象。你可以做一些事情:

  1. 使用像" Underscore.js"这样的js库。并使用_.findWhere($scope.data, {key : "someData"});将返回该键的对象(假设您知道键名称)。

  2. 使用angular.ForEach循环遍历每组输入。例如:

    angular.forEach($ scope.data,function(item,key){     //现在像$ scope.data [0]这样的东西基本上是

    传递的

    });

  3. 如果你不知道它的名字,你将无法获得它。您还可以将对象$ scope.data重新映射为更具描述性的内容或0,1,2的键等。将它们列为您可能并不是处理此问题的最佳方法。

答案 1 :(得分:0)

最后,我在一个有角度的foreach中提取密钥的名称并使用em。

from __future__ import print_function

import numpy as np
from scipy.integrate import ode


def func(t, u, mu):
    tvals.append(t)
    u1 = u[1]
    u2 = mu*(1 - u[0]*u[0])*u[1] - u[0]
    return np.array([u1, u2])


def jac(t, u, mu):
    j = np.empty((2, 2))
    j[0, 0] = 0.0
    j[0, 1] = 1.0
    j[1, 0] = -mu*2*u[0]*u[1] - 1
    j[1, 1] = mu*(1 - u[0]*u[0])
    return j


mu = 10000.0
u0 = [2, 0]
t0 = 0.0
tf = 10

for name, kwargs in [('vode', dict(method='adams')),
                     ('vode', dict(method='bdf')),
                     ('lsoda', {})]:
    for j in [None, jac]:
        solver = ode(func, jac=j)
        solver.set_integrator(name, atol=1e-8, rtol=1e-6, **kwargs)
        solver.set_f_params(mu)
        solver.set_jac_params(mu)
        solver.set_initial_value(u0, t0)

        tvals = []
        i = 0
        while solver.successful() and solver.t < tf:
            solver.integrate(tf, step=True)
            i += 1

        print("%-6s %-8s jac=%-5s " %
              (name, kwargs.get('method', ''), j.func_name if j else None),
              end='')

        tvals = np.unique(tvals)
        print("len(tvals) =", len(tvals))