无法使用ng-options显示和保存

时间:2015-09-11 01:00:04

标签: javascript jquery angularjs mean-stack meanjs

我的原始错误是我的选择选项没有填充,我发现这是因为角度无法看到我的范围,因为它在我的内部"创建"功能。当我将范围对象移出该功能时,它填充了我的选项,但是当我选择一个选项时,它们就消失了.... 这是因为我的选择被绑定到一个没有访问该范围的ng模型。如果我更改模型,当我将其保存到数据库时,它将其保存为[object Object],[object Object],[object Object] 这不是我想要的。

我很困惑,因为我的选择是否需要绑定到正确的模型才能保存到数据库中的正确属性? 当你不打算在模型中操纵日期时,模型如何看待范围?

非常感谢任何帮助

MODEL



var StrainSchema = new Schema({
	name: {
		type: String,
		default: '',
		required: 'Please specify a Strain name',
		trim: true
	},
	description: {
		type: String,
		default: '',
		required: 'Describe the Strain',
		trim: true
	},
	stype: {
		type: String,
		default: '',
		required: 'Specify type of Strain',
		trim: true
	},
	created: {
		type: Date,
		default: Date.now
	},
	user: {
		type: Schema.ObjectId,
		ref: 'User'
	}
});




CONTROLLER



$scope.stype = [
				{id: '1', name: 'Indica'},
				{id: '2', name: 'Sativa'},
				{id: '3', name: 'Hybrid'}
			];

		// Create new Strain
		$scope.create = function() {
			
			
			// Create new Strain object
			var strain = new Strains ({
				name: this.name,
				description: this.description,
				stype: this.stype
			});
			
			

			// Redirect after save
			strain.$save(function(response) {
				$location.path('strains/' + response._id);

				// Clear form fields
				$scope.name = '';
				$scope.description = '';
				$scope.stype = '';
			}, function(errorResponse) {
				$scope.error = errorResponse.data.message;
			});
		};




HTML / VIEW



 <label class="control-label" for="stype">Type</label>
                    <div class="controls">
                        <select name="stype" id="stype" class="form-control" data-ng-model="stype" data-ng-options="type.name for type in stype">
                            <option value="">-- Choose Type --</option>
                        </select>
                    </div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

问题是我没有为value属性指定正确的字符串。

data-ng-options="type.name as type.name for type in stypes"

第一个type.name将我的“name”字符串放入value属性,该值是保存到数据库的值,而不是选项中的文本。