Angular ui_router $ stateProvider resolve不会将数据返回给控制器

时间:2015-07-31 18:59:12

标签: angularjs angular-ui-router ionic

我正在使用角度ui-router进行离子应用程序,这是我的代码。问题是控制器初始化发生在Level1Protocols可以发送数据之前。我究竟做错了什么?

function validateForm() {
    var x, text;
    x = document.forms["form1"]["textEmail"].value;
    if (x == null || x == "" || x == "Email") {
        text = "Please input your eamail";
        document.getElementById("errorEmail").innerHTML = text;
        return false;
    }
    return true;
}

1 个答案:

答案 0 :(得分:3)

我相信你的决心必须回报一个承诺。没有什么可以等待,如果它没有返回任何东西。我认为类似下面的代码会起作用。

              Level1Protocols: ["Level1", "Protocol", "$q", function (Level1, Protocol, $q) {

              var defer = $q.defer();
              var protocolData = [],
                  protocol = new Protocol.Protocol(),
                  detailData = {};

                  Level1.loadProtocolData().success(function (response) {
                      for (var i = 0; i < response.length; i++) {
                          protocol.title = response[i].Title;
                          protocol.level = 1;
                          protocol.icon = Level1.getImageFromArray(response[i].Title);
                          protocolData.push(protocol);
                      }
                      console.log(protocolData);
                      defer.resolve(protocolData);
                  });

                  return defer.promise;
              })]