当为作用域分配不同的值并只调用一个值时
When Assigning different value to a scope and just call one
我第一次尝试使用AngularJS进行编写,但我根本不是一名开发人员。我刚开始编程。
这是我的问题;我想在var ouinon
中为$scope.colors
分配用户在前台输入的选定颜色的值。
当然,放置$scope.colors.name
不起作用。。。(在console.log中,它是"未定义的")
这对你来说可能很容易,但我不认为我做错了什么。
JS部分:
function LookCtrl($scope, $http){
$scope.colors = [
{name:'blue', shade:'femme'},
{name:'red', shade:'femme'},
{name:'yellow', shade:'femme'},
{name:'blue', shade:'homme'},
{name:'red', shade:'homme'}
];
$scope.myColor = $scope.colors[2];
var ouinon = "http://api.shopstyle.fr/api/products?pid=uid7689-25635133-51&cat="
+ $scope.colors.name + "&limit=60&fl=d0&sort=Popular";
$http.get(ouinon).success(function(data){
$scope.look = data;
});
HTML部分:
<section ng-controller="LookCtrl" ng-init="init()" class="panel panel-padding left"
ng-class="{center:panel==1, right:panel<1}">
<h1>Selection: </h1>
<select ng-model="myColor"
ng-options="color.name group by color.shade for color in colors">
</select>
您就快到了。
您的$scope.MyColor
已绑定到所选的颜色。
您可以使用$scope.MyColor.name
来获取名称。
另外,我认为你把控制器写错了。您试图实现的似乎是进行Ajax调用以获取一些数据,但获取数据的触发器是什么?如果它是基于什么时候选择改变,那么你应该写你的控制器如下:
.controller("LookCtrl", ["$scope", "$http", function ($scope, $http){
$scope.colors = [
{name:'blue', shade:'femme'},
{name:'red', shade:'femme'},
{name:'yellow', shade:'femme'},
{name:'blue', shade:'homme'},
{name:'red', shade:'homme'}
];
$scope.myColor = $scope.colors[2]; // default selection
$scope.onChange = function(){
var ouinon = "http://api.shopstyle.fr/api/products?pid=uid7689-25635133-51&cat="
+ $scope.MyColor.name + "&limit=60&fl=d0&sort=Popular";
$http.get(ouinon).success(function(data){
$scope.look = data;
$scope.$apply(); // this is needed since it's an async call
}
};
}]);
然后是HTML:
<section ng-controller="LookCtrl" ng-init="init()" class="panel panel-padding left"
ng-class="{center:panel==1, right:panel<1}">
<h1>Selection: </h1>
<select ng-model="myColor" ng-change="onChange()"
ng-options="color.name group by color.shade for color in colors">
</select>
</section>
简单来说,$scope.colors是一个数组,$scope.clors.name是错误的语法,你会写错吗,你应该使用$scope.MyColor.name
试试这个兄弟。。
控制器
$scope.colors = [
{ name: 'blue', shade: 'femme' },
{ name: 'red', shade: 'femme' },
{ name: 'yellow', shade: 'femme' },
{ name: 'blue', shade: 'homme' },
{ name: 'red', shade: 'homme' }
];
$scope.LookCtrl = function() {
var ouinon = "http://api.shopstyle.fr/api/products?pid=uid7689-25635133-51&cat="
+ $scope.myColor + "&limit=60&fl=d0&sort=Popular";
$http.get(ouinon).success(function (data) {
$scope.look = data;
});
};
HTML
<select ng-model="myColor" ng-options="color.name for color in colors" ng-change="LookCtrl()">
</select>
这只是一个基于您问题的示例,但我不知道您在哪里使用$scope.look
,但在我的示例中,它包含了请求中的一些数据。
我希望它能帮助你。
我让我的$scope.colors
在函数外部声明(但显然是在控制器内部),这样当select
更改时,调用api的函数就是触发器。。
关于进一步的问题,请问我,我对你的问题持开放态度
相关文章:
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 在Javascript中对类的每个实例调用一个方法
- 调用一个“;默认瓦片”;在谷歌地图中
- 使用几个<脚本>标签不会't工作-只调用一个脚本
- NodeJS-从同一文件中的另一个方法调用一个方法
- 从我自己的脚本中包含的Javascript文件中调用一个函数
- 你能调用一个在调用者上下文中返回的函数吗
- 我需要在每5秒内调用一个函数,并重置持续时间
- 触发事件以调用一个函数'它在一个封闭的里面
- 每次数据表中的页面更改时调用一个函数
- 在带有参数列表的表单submit上调用一个方法
- 调用一个函数两次
- 我想在 javascript 中调用一个 php 函数,并在其中传递两个数组作为参数
- 从面板中调用一个在 ExtJs 中没有事件的方法
- 如何调用一个函数,其名称是通过在node.js中组合一些变量来动态创建的
- 动态弹出窗口'通过调用一个永远运行并返回's每个周期后的数据
- 通过javascript调用一个C#windows服务函数
- 从html中调用一个c++函数
- 你能用onblur事件调用一个外部Javascript吗
- 从javascript中调用一个c#函数