AngularJS - 加载后更改ngRepeat中的数据

时间:2015-05-04 21:54:40

标签: javascript jquery angularjs

我有一堆无线电组和一个textarea元素加载到ng-repeat控制器中。我想在控制器完成加载后填充所有/部分控件。我试过$ scope。$ on。我查看了指令,但它们确实令人困惑。

我只想在控制器加载完成后调用一个函数来填充表单(操作DOM)。控制器当前在点击按钮时加载(并加载子控制器)。

这是我的一些示例代码。单击按钮时,我正在调用Risks函数。

myApp.controller('spRisks', function ($scope, $http, Service) {
$scope.getRisks = function(){
    var caml = "<View><Query><Where><Eq><FieldRef Name='Owner'/><Value Type='Integer'><UserID/></Value></Eq></Where></Query></View>";
    var ownerData = getDataWithCaml("Owners", caml);
    ownerData.success(function (data) {
        var arrayOfExpressions = [];
        for (var i = 0; i < data.d.results.length; i++){
            arrayOfExpressions.push(CamlBuilder.Expression().LookupMultiField("OwnerTitle").EqualTo(data.d.results[i].Title));
        }
        var newCaml = new CamlBuilder().View().Query().Where()
            .Any(arrayOfExpressions)
            .And()
            .TextField("Control").IsNotNull()
            .ToString();
        newCaml = newCaml.replace(/"/g, '\'');

        var jsonData = getDataWithCaml("Risks", newCaml);
        jsonData.success(function (jsonDataResults) {
            $scope.$apply(function(){$scope.Risks = jsonDataResults.d.results;});
        });
        jQuery('#divQs').show();
    });
    $scope.$on('$viewContentLoaded', function () {
        alert('test');
        Service.getAnswers($('#selYear').val(), $('#selMonth').val());
    });
}

});

0 个答案:

没有答案