Javascript 设置“选择”菜单的选定值

Javascript 设置“选择”菜单的选定值,javascript,angularjs,Javascript,Angularjs,我想为选择菜单设置所选值。值来自$stateParams。所以我使用的是ui路由器,选择菜单处于子状态。这是我尝试的 这是工作,但我不能拉i Javascript: .controller('nbgCtrl',function ($scope, MMG, $stateParams) { var milo = $stateParams.serix; var musti = $stateParams.klasor; MMG.adlar.success(function(loHemen, milo,

我想为选择菜单设置所选值。值来自$stateParams。所以我使用的是ui路由器,选择菜单处于子状态。这是我尝试的

这是工作,但我不能拉i

Javascript:

.controller('nbgCtrl',function  ($scope, MMG, $stateParams) {
var milo = $stateParams.serix;
var musti = $stateParams.klasor;
MMG.adlar.success(function(loHemen, milo, musti) {
var i;
for (i=0; i<loHemen.length; i++) {
    if (loHemen[i].seri===milo) {
       break;
    };

};
console.log(i);
$scope.mangalar = loHemen;
$scope.selManga = $scope.mangalar[0];
});

.factory('MMG', function($http){
var fveg= {};
var url = 'http://api.example.com/manga?callback=JSON_CALLBACK';
fveg.adlar = $http.jsonp(url);
return fveg;
})

您的for循环逻辑不完全正确。如果循环体被执行,那么success函数将返回
i
(将为0),函数体的其余部分将不运行。您应该将if条件移动到循环内部

.controller('nbgCtrl',function  ($scope, MMG, $stateParams) {
    var milo = $stateParams.serix;
    var musti = $stateParams.klasor;
    // remove the milo and musti variables in your promise callback
    // or if you actually want to have the response code and the headers,
    // give them appropriate variable names
    MMG.adlar.success(function(loHemen) {
        var i, miloMangaInArray;
        for (i=0; i<loHemen.length; i++) {
            if (loHemen[i].seri===milo) {
                miloMangaInArray = loHemen[i];
                break;
            }
        };
        console.log('found value or undefined',miloMangaInArray);
        $scope.mangalar = loHemen;
        $scope.selManga = miloMangaInArray;
    });
})
.controller('nbgCtrl',function($scope,MMG,$stateparms){
var milo=$stateParams.serix;
var musti=$stateParams.klasor;
//删除promise回调中的milo和musti变量
//或者如果你真的想要响应代码和标题,
//给他们适当的变量名
MMG.adlar.success(功能(loHemen){
var i,米洛曼加纳雷;

for(i=0;与for循环类似的iSeems将始终返回
0
Console.log
表示其未定义。如果未定义,则意味着在数组中找不到它。如果使用值为
loHemen
milo
的Console.log执行Console.log,将获得什么输出?
Console.log(milo)
函数内部给出了
200
但函数外部给出了正确的值。我不理解这是因为
MMG
来自工厂?这是因为它是
$http
调用的结果。如果您查看
HttpPromise
的文档,使用promise fn调用的参数是
 (数据、状态、标题、配置、状态文本)
。因为您正在为该变量使用名称
milo
,因此您失去了对以前真正的
milo
调用的访问权限。我将更新我的示例,向您展示它应该如何工作
[{"seri": "Naruto",
  "randomword": [{
            "klasor": "138",
            "yol": [
            ]
        },
        {
            "klasor": "300",
            "yol": [

            ]
        }
    ]
},
{
 "seri": "One Piece",
 "randomword": [
        {
            "klasor": "137",
            "yol": [

            ]
        }
    ]
}
])
.controller('nbgCtrl',function  ($scope, MMG, $stateParams) {
    var milo = $stateParams.serix;
    var musti = $stateParams.klasor;
    // remove the milo and musti variables in your promise callback
    // or if you actually want to have the response code and the headers,
    // give them appropriate variable names
    MMG.adlar.success(function(loHemen) {
        var i, miloMangaInArray;
        for (i=0; i<loHemen.length; i++) {
            if (loHemen[i].seri===milo) {
                miloMangaInArray = loHemen[i];
                break;
            }
        };
        console.log('found value or undefined',miloMangaInArray);
        $scope.mangalar = loHemen;
        $scope.selManga = miloMangaInArray;
    });
})