我有一种情况,我必须传递控制器中声明的指令,函数和变量。我很容易用$ scope做到这一点。但我读了一篇文章说明我们不应该填充范围而是使用它。该文章有以下示例 -
//Don't do this
app.controller('MyCtrl', function($scope){
$scope.name = 'Techno Fattie';
});
//Do this
var MyCtrl = function(){
this.name = 'Techno Fattie';
};
app.controller('MyCtrl', MyCtrl);
我喜欢这个想法,我尝试在我的情况下实现相同的操作,如下所示 -
我有一个CountryController - 我修改后使用它来代替$ scope。 我有一个countryList.tpl.html - 它只有一个指令而没有其他代码。
现在我有一个父控制器,它有一个stateProvider,我在那里配置了country。像这样的东西 -
.state('app.country', {
url: "/country",
templateUrl: "countryList.tpl.html",
controller: CountryController
})
我将控制器的$ scope转换为this但后来我发现我的指令没有收到函数和变量,并且页面加载不正确。
如果tpl文件有指令,那么这种方法没用吗?如果不是这样,那我们怎么做呢?有人可以帮忙吗?