我有自定义流体ViewHelper返回一个数组,我想直接在一个命令中访问这个数组的值。
目前我正在使用两个命令:
{vendor:helper() -> v:variable.set(name: 'data')}
Value of foo: {data.foo}
有没有办法在一个命令中执行此操作? v:variable.get
似乎不适合这项任务。
答案 0 :(得分:0)
这还取决于你真正想要达到的目标。如果你想要对数组进行cicle,你应该创建一个不同的viewhelper 如果你想创建数组,然后访问不同位置的所有数据,你需要寻找f:alias fluid helper
在最后一种情况下,您可以在帮助程序调用后立即直接访问属性,而不再需要它,您必须使用可选值更改viewhelper。如果帮助器重新接收该值,则返回该元素,否则返回整个数组
答案 1 :(得分:0)
v:variable.get
完全符合您的要求:
{v:variable.get(name: 'data.{foo}')}
这将从数组数据中返回索引为{foo}的项目。
答案 2 :(得分:0)
正如@Jpsy所说,有VHS Variable / GetViewHelper。
但用法应为 {v:variable.get(name: '{vendor:helper()}.foo')}
。
如果您需要在模板中多次返回viewhelper的返回数组,最好以您现有的方式使用它。因为否则你会在每次想要再次访问已经建立的数组的索引时调用viewhelper后面的PHP方法来构建和返回数组。
答案 3 :(得分:0)
您写道,您正在使用自定义ViewHelper。 你能修改一下吗?
在ViewHelper中,您可以轻松地为变量分配:
import UIKit
import PromiseKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
let URL = "http://httpbin.org/"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func runPutRequest() {
let putRequest = Alamofire.request("\(URL)/get")
putRequest.response { [weak self] putRequest, putResponse, putData, putError in
if let strongSelf = self {
// Probably store some data
strongSelf.runGetRequest()
}
}
}
func runGetRequest() {
let getRequest = Alamofire.request("\(URL)/get", method: .get)
getRequest.response { [weak self] getRequest, getResponse, getData, getError in
if let strongSelf = self {
// Probably store more data
strongSelf.processResponse()
}
}
}
func processResponse() {
// Process that data
}
func reloadData() {
// Reload that data
}
}