我需要知道如何使用AngularJS按位置获取对象,我从C#中的WebAPI返回一个带有4个DataTable的DataSet并将其保存在我的JS的$ scope中,当我在Chrome中console.log($scope.data)
时控制台看起来像图像。现在,当我在Chrome控制台中console.log($scope.data[1])
时,我无法确定,但当我console.log($scope.data.inputs0)
时,我会看到正确的数据。怎么了?谢谢:))
答案 0 :(得分:1)
没有$ scope.data [1]。它不是一个数组,它是一个对象。你可以做一些事情:
使用像" Underscore.js"这样的js库。并使用_.findWhere($scope.data, {key : "someData"});
将返回该键的对象(假设您知道键名称)。
使用angular.ForEach循环遍历每组输入。例如:
angular.forEach($ scope.data,function(item,key){ //现在像$ scope.data [0]这样的东西基本上是
传递的});
如果你不知道它的名字,你将无法获得它。您还可以将对象$ 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))