/ / Mostrar atributo de ngrepeat de ngcontroller alias - angularjs, angularjs-ng-repeat, ng-controller

Muestra el atributo de ngrepeat del alias ngcontroller: angularjs, angularjs-ng-repeat, ng-controller

Sin el alias ngcontroller, puedo recuperar los datos. Sin embargo, cuando tengo un alias, no puedo. ¿Cuál es mi error aquí?

Etiquetas HTML:

<div style="padding: 10px" id="content_dv" ng-controller="displaytopic_ctrl as f">
<div class="topic_dv" ng-repeat="t in f.topic">
<p>{{ t.MEMBER_NAME }}</p>
</div>
</div>

en app.js:

.controller("displaytopic_ctrl", ["$http", function($http) {

$http({
method: "get",
url: api_url + "get_topic_list.php",
data: {
type: "all"
}

}).success(function(d){
if(d.t=="p"){
this.topic = d.topic;
}
}).error(
function(){
console.log("Query error");
});

}]);

Respuestas

0 para la respuesta № 1

Debido a la forma Los cierres de JavaScript funcionan, el this variable que está utilizando en su devolución de llamada de éxito no es el controlador. El mecanismo más utilizado para resolver esto es crear un alias para el controlador al que puede hacer referencia dentro de sus devoluciones de llamada.

Por ejemplo:

.controller("displaytopic_ctrl", ["$http",
function($http) {
var controller = this;

$http({
method: "get",
url: api_url + "get_topic_list.php",
data: {
type: "all"
}

}).success(function(d) {
if (d.t == "p") {
controller.topic = d.topic;
}
}).error(
function() {
console.log("Query error");
});

}
]);