$scope.populateMap=[{name: "ABC", code: "123"}, {name: "XYZ", code: "345"}]
//想要发送模型名称+模型的值当前发送ngObject.MainObj.specificFormatObj
HTML
<select ng-model="ngObject.MainObj.specificFormatObj" ng-change="ngObject.MainObj.specificFormatObj">
<option></option>
<option ng-repeat="i in populateMap" value="{{i}}">{{i.name}}</option>
JS
// CONTROLLER CODE JSON parse object to get name and code GOT parsedObj
$scope.genericSetLookups=function (Obj) { // want to do something like get the ngmodel string + the value, currently only value comes in
Obj.code=parsedObj.code;
Obj.name=parsedObj.name
};
更多说明:ngObject.MainObj.specificFormatObj
答案 0 :(得分:1)
由于您需要将模型名称作为参数传递,因此请将其作为字符串从html传递:
ng-change="genericSetLookups('ngObject.SomeObject.abc',ngObject.SomeObject.abc)"
在控制器中,型号名称包含“。”我们不能直接使用该名称作为关键。我们需要解析模型名称。搜索了一下之后,我已经做了些什么。希望它有效。
控制器代码:
$scope.genericSetLookups(modelName, value){
Object.setValueByString($scope, modelName, value);
}
Object.setValueByString = function(o, s, val) {
s = s.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip a leading dot
var a = s.split('.');
for (var i = 0, n = a.length; i < n; ++i) {
var k = a[i];
if (k in o) {
if(i != n-1){
o = o[k];
}
else{
o[k] = val;
}
} else {
return;
}
}
return o;
}
还必须转到@Alnitak获取答案here
答案 1 :(得分:0)
我没有真正理解你的问题,而且这些评论并没有让我更清楚。我试图做的是给你一个如何处理选择框和模型的例子。
我会使用ng-options
循环选项,并通过将{{selected.name}}
放在模板中来显示所选的选项。当然,如果您想要以任何方式格式化所选值或对更改作出反应,您可以使用ng-change
。
希望它有所帮助。
答案 2 :(得分:0)
我不确定我是否理解你的问题。如果您想在模型中保存值代码+名称,也许此代码可以帮助您:
<select ng-model="ngObject.MainObj.specificFormatObj" ng-options="(ppm.code + '-' + ppm.name) as ppm.name for ppm in populateMap">
</select>